R-help,
I have a data frame (df) and I want to add some columns whose names
should correspond to the "i" index in the loop below.
 for(i in 1:10)
 {
df$eval(paste("St", as.character(i), sep = "" ))  <-
ObJeCt[i]
 }
An error message comes out : 
"Error: attempt to apply non-function"
How can I get around this?
I could do something like :
df$St2 <- NA
df$St3 <- NA
dft$St4 < -NA
..
and afterwards assign the results of the loop above 
to the columns df$St2,df$St3,,,,,,,,,,,
The problem is that my object "ObJeCt[i]" may change in size
and definition and therefore a way to systematize the task would
be desirable.
Thanks in advance
> version
               _                           
platform       i386-pc-mingw32             
arch           i386                        
os             mingw32                     
system         i386, mingw32               
status                                     
major          2                           
minor          4.1                         
year           2006                        
month          12                          
day            18                          
svn rev        40228                       
language       R                           
version.string R version 2.4.1 (2006-12-18)
Have you tried something like df <- cbind(df, ObJeCT[, 1:10]) Cheers, Thierry ------------------------------------------------------------------------ ---- ir. Thierry Onkelinx Instituut voor natuur- en bosonderzoek / Reseach Institute for Nature and Forest Cel biometrie, methodologie en kwaliteitszorg / Section biometrics, methodology and quality assurance Gaverstraat 4 9500 Geraardsbergen Belgium tel. + 32 54/436 185 Thierry.Onkelinx op inbo.be www.inbo.be Do not put your faith in what statistics say until you have carefully considered what they do not say. ~William W. Watt A statistical analysis, properly conducted, is a delicate dissection of uncertainties, a surgery of suppositions. ~M.J.Moroney> -----Oorspronkelijk bericht----- > Van: r-help-bounces op stat.math.ethz.ch > [mailto:r-help-bounces op stat.math.ethz.ch] Namens Luis Ridao Cruz > Verzonden: woensdag 21 maart 2007 16:14 > Aan: r-help op stat.math.ethz.ch > Onderwerp: [R] for loop in assigning column names > > R-help, > > I have a data frame (df) and I want to add some columns whose > names should correspond to the "i" index in the loop below. > > for(i in 1:10) > { > df$eval(paste("St", as.character(i), sep = "" )) <- ObJeCt[i] } > > An error message comes out : > > "Error: attempt to apply non-function" > > How can I get around this? > > I could do something like : > > df$St2 <- NA > df$St3 <- NA > dft$St4 < -NA > .. > > and afterwards assign the results of the loop above to the > columns df$St2,df$St3,,,,,,,,,,, > > The problem is that my object "ObJeCt[i]" may change in size > and definition and therefore a way to systematize the task > would be desirable. > > Thanks in advance > > > version > _ > platform i386-pc-mingw32 > arch i386 > os mingw32 > system i386, mingw32 > status > major 2 > minor 4.1 > year 2006 > month 12 > day 18 > svn rev 40228 > language R > version.string R version 2.4.1 (2006-12-18) > > ______________________________________________ > R-help op stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >
try
df.new <- cbind(df, ObJeCt[1:10])
names(df.new) <- c(names(df), paste("St", 1:10, sep =
""))
I hope it helps.
Best,
Dimitris
----
Dimitris Rizopoulos
Ph.D. Student
Biostatistical Centre
School of Public Health
Catholic University of Leuven
Address: Kapucijnenvoer 35, Leuven, Belgium
Tel: +32/(0)16/336899
Fax: +32/(0)16/337015
Web: http://med.kuleuven.be/biostat/
     http://www.student.kuleuven.be/~m0390867/dimitris.htm
----- Original Message ----- 
From: "Luis Ridao Cruz" <Luisr at frs.fo>
To: <r-help at stat.math.ethz.ch>
Sent: Wednesday, March 21, 2007 4:14 PM
Subject: [R] for loop in assigning column names
> R-help,
>
> I have a data frame (df) and I want to add some columns whose names
> should correspond to the "i" index in the loop below.
>
> for(i in 1:10)
> {
> df$eval(paste("St", as.character(i), sep = "" ))  <-
ObJeCt[i]
> }
>
> An error message comes out :
>
> "Error: attempt to apply non-function"
>
> How can I get around this?
>
> I could do something like :
>
> df$St2 <- NA
> df$St3 <- NA
> dft$St4 < -NA
> ..
>
> and afterwards assign the results of the loop above
> to the columns df$St2,df$St3,,,,,,,,,,,
>
> The problem is that my object "ObJeCt[i]" may change in size
> and definition and therefore a way to systematize the task would
> be desirable.
>
> Thanks in advance
>
>> version
>               _
> platform       i386-pc-mingw32
> arch           i386
> os             mingw32
> system         i386, mingw32
> status
> major          2
> minor          4.1
> year           2006
> month          12
> day            18
> svn rev        40228
> language       R
> version.string R version 2.4.1 (2006-12-18)
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide 
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
> 
Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm