2012-03-19 59 views
2

我有两个数据帧。第一个df.1包含两列配对的数字标识符,其中每列包含约100,000行。第二数据帧df.2包括数字标识符的一列(df.2$C)。这个数据框有大约200行。在R中,如何通过来自另一个data.frame的值来对data.frame进行子集化?

如何才能找到df.1的配对数据子集,其中只包含具有df.2$C中找到的标识符值的行?

最终子集将包括df.1其对应于匹配df.1$Adf.1$B或两者中发现的标识符,在df.2$C找到的标识符配对的数据。

回答

13

你可以使用?"%in%"(类似于?match):

df1 <- data.frame(A=sample(1:10, 10), B=sample(1:10, 10)) 
df2 <- data.frame(C=1:5) 

selectedRows <- (df1$A %in% df2$C | df1$B %in% df2$C) 

dfReduced <- df1[selectedRows,]