【发布时间】:2016-02-15 16:29:10
【问题描述】:
我有一个庞大的数据集,格式如下:
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
现在我想提取所有interaction_number为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)")
但该功能不起作用。我正在寻找添加一个标记列( 1 用于所有有interaction_number 0 的ID),然后对这些行进行子集化。但我无法弄清楚该怎么做。 我们可以创建 ID 的数据框,然后使用该数据框,我们可以使用子集来获取所有行吗?
请帮忙。 谢谢你
【问题讨论】:
-
您的示例中没有等于 0 的
Interaction。你的意思是Interaction_number。如果是这样,你的输出就不清楚了。 -
是的,对不起,我的意思是 Interaction_number
-
我基本上想要各个 ID 的所有行,其中有一个 0 Interaction_number
-
检查 sqldf 函数,它会给你我需要的基本输出。
-
它实际上是非常简单的 R 子集:
df[df$ID %in% df$ID[df$Interaction_number == 0],]