如何在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))