[英]Subset of a data frame including elements of another data frame at the specified columns
我有兩個數據幀(df1和df2)
令df1是這樣的數據幀:
col1 col2 col3
a 3 12
a 5 15
b 2 3
a 5 6
a 4 12
b 5 15
a 3 14
c 5 8
c 3 2
c 2 22
b 2 21
a 5 11
b 5 7
c 5 6
a 2 5
即`
df1<-data.frame(col1=c("a","a","b","a","a","b","a","c","c","c","b","a","b","c","a")
,col2=c(3,5,2,5,4,5,3,5,3,2,2,5,5,5,2)
,col3=c(12,15,3,6,12,15,14,8,2,22,21,11,7,6,5))
令df2是這樣的數據幀:
col1 col2
b 3
c 4
所需的輸出是:
col1 col2 col3
a 3 12
b 2 3
a 4 12
b 5 15
a 3 14
c 5 8
c 3 2
c 2 22
b 2 21
b 5 7
c 5 6
這是df1的子集。 它包括與df2的col1或df2的col2等價的df1的所有行。
例如,col1.df2的元素之一是“ b”。 因此,df1的col1處包括“ b”的所有行將成為所需輸出的元素。
df2的第二列也包含“ 3”。 因此,包括df1的col2處的“ 3”在內的所有行將成為所需輸出的元素。
對於“ c”和“ 4”也是如此。
我如何用R做到這一點? 我會很高興為您提供任何幫助。非常感謝。
你試一試:
df1[df1$col1 %in% df2$col1 | df1$col2 %in% df2$col2,]
如果有很多列,您也可以在Map
使用Reduce
df1[Reduce(`|`, Map(`%in%`, df1[1:2], df2[1:2])),]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.