如果我有以下内容:
a<-data.table(id=rep(letters[1:4],2), var=c(1,2,1:6), key="id,var")
我可以用
复制“通常”a[a$id=="a" & a$var==1,]
> a[.("a",1)]
id var
1: a 1
但是a[a$var==1,]
呢?如果我使用整个"a"
列更改id
,我就无法得到我期望的内容:
> a[.(id,1)]
id var
1: a 1
2: a 1
3: b 1
4: b 1
5: c 1
6: c 1
7: d 1
8: d 1
提前感谢。
答案 0 :(得分:3)
试试这个:
> a[ .(unique(id), 1),, nomatch = 0 ]
id var
1: a 1
2: c 1
溶液。我们可以通过将id
作为一个因素并使用级别来扫描> a<-data.table(id=factor(rep(letters[1:4],2)), var=c(1,2,1:6), key="id,var")
> a[ .(levels(id), 1),, nomatch = 0 ]
id var
1: a 1
2: c 1
:
{{1}}