bum*_*bee 3 r subset data.table
我有一个数据表
library(data.table)
DT <- data.table(a=c(1,2,3,4), b=c(4,4,4,4), x=c(1,3,5,5))
> DT
a b x
1: 1 4 1
2: 2 4 3
3: 3 4 5
4: 4 4 5
Run Code Online (Sandbox Code Playgroud)
我想选择x等于a或 的行b。显然,我可以使用
> DT[x==a | x==b]
a b x
1: 1 4 1
Run Code Online (Sandbox Code Playgroud)
这给出了正确的结果。然而,对于我认为的许多专栏,以下内容应该同样有效
> DT[x%in%c(a,b)]
a b x
1: 1 4 1
2: 2 4 3
Run Code Online (Sandbox Code Playgroud)
但它给出了一个对我来说不直观的不同结果。有人可以帮忙吗?
表达方式
DT[x==a | x==b]
Run Code Online (Sandbox Code Playgroud)
返回和DT中的值相等或和相等的所有行。这是期望的结果。xaxb
另一方面
DT[x%in%c(a,b)]
Run Code Online (Sandbox Code Playgroud)
返回与 中的任何值x匹配的所有行,而不仅仅是对应的值。因此,您的第二行出现是因为和出现在(某处)。c(a, b)x == 33a
| 归档时间: |
|
| 查看次数: |
1189 次 |
| 最近记录: |