我有以下格式的庞大数据集:
ID Interaction Interaction_number
1 abc 1
1 xyz 2
1 pqr 3
1 ced 0
2 ab 0
2 efg 1
3 asdf 2
3 fgh 3
3 abc 0
4 sql 1
4 ghj 2
5 poi 2
6 pqr 1
现在,我想提取所有ID为0的ID数据,例如:
ID Interaction Interaction_number
1 abc 1
1 xyz 2
1 pqr 3
1 ced 0
2 ab 0
2 efg 1
3 asdf 2
3 fgh 3
3 abc 0
它是一个巨大的数据集。我需要使用R提取它。
我尝试使用sqldf函数。
x<-sqldf("select * from data where data$ID in (select data$ID from data where data$Interaction_number ==0)")
但是该功能没有起作用。我当时想添加一个标记列(对于所有ID为0的所有ID,均添加1列),然后对这些行进行子集化。但是我不知道该怎么做。我们可以创建ID的数据帧,然后使用该数据帧来使用子集获取所有行吗?
请帮忙。谢谢你
我建议使用data.table
包。然后,您可以获得您的结果。说您的数据在data.frame
df
。然后
library(data.table)
dt <- data.table(df, key = 'ID')
tmp <- dt[, list(condition = any(Interaction_number == 0)), by = ID]
res <- dt[tmp[condition == TRUE, list(ID)]]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句