您好,我有一个数据框,例如
Group COL1 Event
G1 SP1 1
G1 SP2 1
G1 SP3 2
G1 SP3 2
G2 SP4 3
G2 SP7 3
G2 SP5 6
G3 SP1 1
G4 SP1 6
而且我想仅保留COL1(如果Event
唯一)(因此示例SP3和SP5在“事件”列中是唯一的)。
那我应该得到:
Group COL1 Event
G1 SP3 2
G1 SP3 2
G2 SP5 6
G3 SP1 1
G4 SP1 6
SP1
并且SP2
在第2列中,Event1
所以他们没有通过
SP4
并且SP7
在第2列中,Event3
所以他们没有通过
您可以使用data.table进行分组Group
,Event
并仅在.SD
唯一COL1值(uniqueN(COL1)
)的数量为1时返回分组的内容()。
library(data.table)
setDT(df)
df[, if(uniqueN(COL1) == 1) .SD, by = .(Group, Event)]
# Group Event COL1
# 1: G1 2 SP3
# 2: G1 2 SP3
# 3: G2 6 SP5
# 4: G3 1 SP1
# 5: G4 6 SP1
使用的数据:
df <- fread('
Group COL1 Event
G1 SP1 1
G1 SP2 1
G1 SP3 2
G1 SP3 2
G2 SP4 3
G2 SP7 3
G2 SP5 6
G3 SP1 1
G4 SP1 6
')
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句