【发布时间】:2016-06-01 11:31:53
【问题描述】:
dt <- data.table(id=c(8,5,4,9,2,7), col1=c(2,1,2,2,3,1), col2=c(1,1,1,2,3,1))
id col1 col2
1: 8 2 1
2: 5 1 1
3: 4 2 1
4: 9 2 2
5: 2 3 3
6: 7 1 1
我想对 dt 进行子集化,以仅使用列索引而不是名称来获取 col1 或 col2 中包含值 2 的行。
编辑:明确地说,我对只有列索引已知(名称未知)的情况感兴趣。
【问题讨论】:
-
喜欢
dt[col1 %in% 2 | col2 %in% 2,]? -
不,像这样
dt[as.vector(dt[,2,with=F] == 2) | as.vector(dt[,3,with=F] == 2)],但是我有很多列,所以复制粘贴相同的条件并更改列索引是不切实际的。
标签: r data.table