[R] create new column with colnames resulting from paste()

Daniel Folkinshteyn dfolkins at gmail.com
Thu Jun 26 19:16:47 CEST 2008


no need for a for loop - we can vectorize this:

 > dt <- data.frame(a = c(1, 2, 3), b = c(3, 2, 2), c = c(1, 3, 5))
 > dt
   a b c
1 1 3 1
2 2 2 3
3 3 2 5
 > dt[,paste("test", 1:2, sep="")] = rep(1:2, each=3)
 > dt
   a b c test1 test2
1 1 3 1     1     2
2 2 2 3     1     2
3 3 2 5     1     2


on 06/26/2008 12:42 PM jim holtman said the following:
> Is this what you want
> 
>> dt <- data.frame(a = c(1, 2, 3), b = c(3, 2, 2), c = c(1, 3, 5))
>> for (i in 1:2){
> +     dt[[paste('test',i,sep="")]] <- rep(i,3)
> + }
>> dt
>   a b c test1 test2
> 1 1 3 1     1     2
> 2 2 2 3     1     2
> 3 3 2 5     1     2
> 
> 
> On Thu, Jun 26, 2008 at 12:23 PM, Dong-hyun Oh <r.arecibo at gmail.com> wrote:
>> Dear UseRs,
>>
>> I would like to know the way to create a new column by naming it
>> simultaneously.
>> For example, in for() loop I want to create columns named as paste("test",
>> i, sep = ""), as shown below.
>>
>> ----------------------------
>> dt <- data.frame(a = c(1, 2, 3), b = c(3, 2, 2), c = c(1, 3, 5))
>>
>> for(i in 1:2){
>>        dt$as.name(paste("test", i, sep = "")) <- rep(i, 3)
>> }
>> --------------------------
>>
>> Error message of above command is as follows:
>> --------------------------
>> Error in dt$as.name(paste("test", i, sep = "")) <- rep(i, 3) :
>> target of assignment expands to non-language object
>> --------------------------
>>
>>
>> The structure of data.frame I want is as follows:
>>> dt
>> a       b       c       test1   test2
>> 1       3       2       1               2
>> 2       2       3       1               2
>> 3       2       5       1               2
>>
>> Any help?
>>
>> Thank you in advance.
>>
>> Best,
>>
>>
>>
>> =========================================================
>> Dong-hyun Oh
>> Center of Excellence for Science and Innovation Studies
>> Royal Institute or Technology, Sweden
>> e-mail: oh.dongh at gmail.com
>> cel: +46 73 563 45 22
>>
>> ______________________________________________
>> R-help at r-project.org 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.
>>
> 
> 
>



More information about the R-help mailing list