如何在data.frame或data.table中使用paste分配变量名?

时间:2015-08-18 08:23:52

标签: r dataframe data.table

正如评论中所指出的,此问题适用于data.frame以及data.table

paste无法直接在data.table()中使用:

> data.table(paste(hello)=c(1,2),paste(world)=c(3,4))
Error: unexpected '=' in "data.table(paste(hello)="

This Question通过将变量名称预分配给变量并在现有pasted中创建新变量时使用该变量来处理data.table的变量名称:

y1 <- paste0("popYears", ii+1)
dt[, (y1) := eval(y0)*growthRate]

但是,在创建新的data.table

时,这不起作用
> name1 <- paste("hello")
> name2 <- paste("world")
> data.table((name1)=c(1,2), (name2)=c(3,4))
Error: unexpected '=' in "data.table((name1)="
这是故意的吗?有什么方法可以解决这个问题吗?

主要问题是:在创建data.table时如何使用粘贴来指定变量名称?

的解决方案,它在创建data.table后分配名称,但这需要许多其他代码行:

> name1 <- paste("hello")
> name2 <- paste("world")
> DT <- data.table(name1=c(1,2), name2=c(3,4))
> setnames(DT, "name1", name1)
> setnames(DT, "name2", name2)
> DT

   hello world
1:     1     3
2:     2     4

0 个答案:

没有答案