通过R中的列内的唯一值对数据帧进行子集

Chippycentra

您好,我有一个数据框,例如

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进行分组GroupEvent并仅在.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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何通过仅获取此数据帧中2列的非NA值来对数据帧进行子集

通过单独数据帧中的列内容对数据帧进行子集化 - Python 3

根据特定列的值对数据帧进行子集

根据唯一值和其他列数据对数据框进行子集设置

通过将数据帧匹配到列表来对数据帧进行子集设置,并使用R在输出中也包含不匹配值

在 R 中,如何根据向量中的值对数据帧的行进行子集

通过部分匹配r中的另一个数据帧来对数据帧进行子集设置(对python / pandas解决方案开放)

如何基于R中的条件对数据帧进行子集

根据R中的某些条件对数据帧进行子集

如何基于另一个数据帧中的值对数据帧进行子集设置?

如何基于基础R中的另一个数据帧对数据帧进行子集

通过匹配列和值 R 对数据框进行子集和分组

通过R中多个变量中的多个值对数据进行子集

按另一个数据帧的行值对数据帧进行子集

R-数据帧列中唯一值的数量

根据r中id中的值对数据进行子集

如何从R中的两个不同数据帧中添加两列,其中一列只是另一列的唯一值的子集

如何通过python中选择列右侧的每行中的nan数对数据帧进行子集化?

从 R 中的函数内对数据进行子集化

通过一行的条件值对 R 数据帧进行子集

通过数据的间隔,用 R 对数据帧进行子集化

在一列中基于两个值对数据框进行子集

如何根据R中两列不匹配的值对数据框进行子集化?

如何根据下一次出现在R中对数据帧进行子集化?

在函数内对数据帧进行子集化

使用 case_when() 和 filter() 根据 R 中一列中的值和另一列中的级别对数据框进行子集化

使用值的间隔来对数据帧进行子集

如何基于R中的列对数据帧进行分类?

R:根据日期列在另一列的因子级别内对数据框进行子集化