如何在data.frame或data.table中使用粘贴指定变量名?

如何在data.frame或data.table中使用粘贴指定变量名?,r,dataframe,data.table,R,Dataframe,Data.table,正如评论中指出的,该问题适用于数据.frame以及数据.table paste在data.table()中不起作用。直接: > data.table(paste(hello)=c(1,2),paste(world)=c(3,4)) Error: unexpected '=' in "data.table(paste(hello)=" 通过将变量预先分配给变量,以及在现有数据中创建新变量时使用该变量,来分配粘贴的变量名。表: y1 <- paste0("popYears", ii+1

正如评论中指出的,该问题适用于
数据.frame
以及
数据.table

paste
data.table()中不起作用。
直接:

> data.table(paste(hello)=c(1,2),paste(world)=c(3,4))
Error: unexpected '=' in "data.table(paste(hello)="
通过将变量预先分配给变量,以及在现有
数据中创建新变量时使用该变量,来分配粘贴的
变量名。表

y1 <- paste0("popYears", ii+1)
dt[, (y1) := eval(y0)*growthRate]
> name1 <- paste("hello")
> name2 <- paste("world")
> data.table((name1)=c(1,2), (name2)=c(3,4))
Error: unexpected '=' in "data.table((name1)="
这是故意的吗?有办法解决这个问题吗

主要问题是:在创建
数据表时,如何使用粘贴来指定变量名

有一种解决方案,即在创建
数据表后分配名称,但这需要多行代码:

> 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
>name1 name2 DT setnames(DT,“name1”,name1)
>集合名称(DT,“名称2”,名称2)
>DT
你好,世界
1:     1     3
2:     2     4

我不认为
数据。表
可以在其LHS上计算表达式。这并不是特定于
data.table
,而是
data.frame
的工作方式
data.frame((name1)=c(1,2),(name2)=c(3,4))
将给出完全相同的错误。嗯,好吧,自从我知道data.table以来,我就没有使用过data.frames,所以我没有尝试过,我将编辑我的问题。不要指定任何名称作为开头,然后执行
setnames(DT,c(name1,name2))
我不认为
数据。表
可以在其LHS上计算表达式。这并不是特定于
data.table
,而是
data.frame
的工作方式
data.frame((name1)=c(1,2),(name2)=c(3,4))
将给出完全相同的错误。嗯,好吧,自从我知道data.table以来,我就没有使用过data.frames,所以我没有尝试过,我将编辑我的问题。不要指定任何名称作为开头,然后执行
setnames(DT,c(name1,name2))