我有一个列名存储在变量中作为字符串,我需要选择data.table的所有行,在列中我已经在变量中存储了一些特定值。 对于下面的代码,我需要DT3与DT2相同。
> variable<-"V3"
> DT<-data.table(V1=c(1,5,9),V2=c("a","b","c"),V3=c(TRUE,FALSE,TRUE))
> DT2<-DT[V3==TRUE]
> DT2
> DT3<-DT[variable==TRUE]
> DT3
答案 0 :(得分:1)
可以通过几种方式完成。使用get
返回值
DT3 <- DT[get(variable)]
或将其转换为符号(as.name
)和eval
uate
DT3 <- DT[DT[,eval(as.name(variable))]]
identical(DT2, DT3)
#[1] TRUE
请注意,我们不需要== TRUE
,因为'V3'已经是逻辑列