【发布时间】:2022-01-01 19:28:49
【问题描述】:
小例子:
dt <- data.table(a=c(1,2,3),b=c(4,5,6))
看起来像这样:
> dt
a b
1: 1 4
2: 2 5
3: 3 6
假设我想索引有 6 值的列,在这个玩具示例中很容易,因为我们知道该列:
> dt[,.(b)]
b
1: 4
2: 5
3: 6
现在,如果这个dt 有几千列,而我们不知道6 在哪里。
我试过这个:
> dt[,.SD==6]
a b
[1,] FALSE FALSE
[2,] FALSE FALSE
[3,] FALSE TRUE
还有这个:
> dt[,lapply(.SD,`==`,6)]
a b
1: FALSE FALSE
2: FALSE FALSE
3: FALSE TRUE
还有:
> dt[,lapply(.SD,function(x) any(x==6))]
a b
1: FALSE TRUE
但我无法找回原来的专栏:
b
1: 4
2: 5
3: 6
【问题讨论】:
标签: r data.table