如何根据至少一个或多个值匹配来筛选 R 数据框的行?
要根据至少一个或多个值匹配来筛选 R 数据框的行,我们可以按照以下步骤操作:
首先,创建一个数据框。
然后,使用 rowSums 函数结合 sapply 函数和匹配的值,来筛选数据框的行,如果至少一个或多个值匹配。
示例
创建数据框
让我们创建一个如下所示的数据框:
x<-rpois(25,5) y<-rpois(25,5) z<-rpois(25,5) df<-data.frame(x,y,z) df
输出
执行上述脚本后,将生成以下输出(由于随机化,此输出在您的系统上可能会有所不同):
x y z 1 5 5 2 2 10 5 5 3 3 4 6 4 9 4 12 5 2 4 5 6 3 4 4 7 4 3 9 8 4 5 10 9 5 3 9 10 3 2 2 11 2 8 4 12 4 5 2 13 2 9 2 14 5 2 1 15 6 2 7 16 2 4 7 17 7 5 5 18 3 3 1 19 4 4 7 20 7 4 5 21 4 4 4 22 3 6 2 23 3 2 7 24 1 3 3 25 5 4 4
筛选数据框
使用 rowSums 函数结合 sapply 函数和值 4、5、6、7、8 来匹配,以筛选数据框的行,如果这些值中至少有一个或多个匹配:
x<-rpois(25,5) y<-rpois(25,5) z<-rpois(25,5) df<-data.frame(x,y,z) df[rowSums(sapply(df[], '%in%', c(4,5,6,7,8)))>0,]
输出
x y z 1 5 5 2 2 10 5 5 3 3 4 6 4 9 4 12 5 2 4 5 6 3 4 4 7 4 3 9 8 4 5 10 9 5 3 9 11 2 8 4 12 4 5 2 14 5 2 1 15 6 2 7 16 2 4 7 17 7 5 5 19 4 4 7 20 7 4 5 21 4 4 4 22 3 6 2 23 3 2 7 25 5 4 4
广告