Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

In R, how do I subset a data.frame by values from another data.frame?

I have two data frames. The first, df.1, contains two columns of paired numerical identifiers, where each column includes ~100,000 rows. The second data frame, df.2, includes one column (df.2$C) of numerical identifiers. This data frame has around 200 rows.

How can I find the paired subset of data of df.1 that includes only the rows with values of the identifiers found in df.2$C?

The final subset would include the paired data of df.1 which corresponds to identifiers found in df.2$C that match the identifiers found in df.1$A, df.1$B or both.

like image 223
Paul Kadota Avatar asked Dec 06 '22 15:12

Paul Kadota


1 Answers

You could use ?"%in%" (similar to ?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,]
like image 147
sgibb Avatar answered Apr 20 '23 01:04

sgibb