2012-03-19 2 views
2

J'ai deux trames de données. Le premier, df.1, contient deux colonnes d'identificateurs numériques appariés, où chaque colonne comprend ~ 100 000 lignes. La deuxième trame de données, df.2, comprend une colonne (df.2$C) d'identificateurs numériques. Ce cadre de données a environ 200 lignes.Dans R, comment sous-estimer un data.frame par des valeurs provenant d'un autre data.frame?

Comment puis-je trouver le sous-ensemble de données df.1 qui inclut uniquement les lignes avec les valeurs des identificateurs trouvés dans df.2$C?

Le sous-ensemble finale comprendrait les données appariées de df.1 qui correspond à des identificateurs présents dans df.2$C qui correspondent aux identificateurs présents dans df.1$A, df.1$B ou les deux.

Répondre

13

Vous pouvez utiliser ?"%in%" (similaire à ?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,] 
Questions connexes