如何根据至少一个或多个值匹配来筛选 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

更新于: 2021年11月11日

337 次查看

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告