【发布时间】:2017-01-22 16:29:10
【问题描述】:
是否可以使用存储在列名数组中的列名来对数据框列进行子集化(到新的 df 中) - 比如在 c("col1", "col9", "col6") 中?我知道我可以使用 df[[colname]] 语法引用 df 中的一列,但它不允许我为多列执行此操作:
df
X1 X2 X3
1: a 1 3
2: b 5 3
3: a 3 4
4: c 6 5
5: c 2 2
cnm<-c("X2","X3")
df[[cnm]]
.subset2(x, i, exact = exact) 中的错误:下标超出范围
谢谢
【问题讨论】:
-
谢谢 - 第一个有效,但需要将数据框转换为表格...第二个在我尝试时无效:> cnm df[cnm ]
[.data.table(df, cnm) 中的错误:当 i 是 data.table(或字符向量)时,x 必须是键控(即已排序,并且,标记为已排序),因此 data.table 知道要加入哪些列和利用 x 被排序。先调用 setkey(x,...),见 ?setkey。 -
第二个不起作用,因为您的数据集是
data.table