.SD看起来很有用,但我真的不知道我在做什么.它代表什么?为什么会有前一段时间(句号).我用它时发生了什么?
我读到:
.SD是一个data.table包含x每个组的数据子集,不包括组列.它可以在分组i时,分组by,键控by和_ad hoc_时使用by
这是否意味着女儿data.table被留在内存中进行下一次操作?
我试图找到我的所有记录,data.table其中有多个行在字段f中具有值v.
例如,我们可以使用这些数据:
dt <- data.table(f1=c(1,2,3,4,5), f2=c(1,1,2,3,3))
Run Code Online (Sandbox Code Playgroud)
如果在现场寻找那个属性f2,我们会得到(注意没有(3,2)元组)
f1 f2
1: 1 1
2: 2 1
3: 4 3
4: 5 3
Run Code Online (Sandbox Code Playgroud)
我的第一个猜测是dt[.N>2,list(.N),by=f2],但这实际上保留了条目.N==1.
dt[.N>2,list(.N),by=f2]
f2 N
1: 1 2
2: 2 1
3: 3 2
Run Code Online (Sandbox Code Playgroud)
另一个简单的猜测,dt[duplicated(dt$f2)]并没有做到这一点,因为它保留了结果之一的"重复".
dt[duplicated(dt$f2)]
f1 f2
1: 2 1
2: 5 3
Run Code Online (Sandbox Code Playgroud)
那我该怎么做呢?
编辑添加示例