如果至少有一个或多个值匹配,如何对 R 数据框行进行子集化?

如果至少有一个或多个值匹配,要对 R 数据框行进行子集化,我们可以按照以下步骤操作 -

  • 首先,创建一个数据框。

  • 然后,如果至少一个或多个值匹配,则使用 rowSums 函数以及 sapply 函数和匹配值对数据框行进行子集化。

示例

创建数据框

让我们创建一个数据框,如下所示 -

x<-rpois(25,5)

y<-rpois(25,5)

z<-rpois(25,5)

df<-data.frame(x,y,z)

df

输出结果

执行时,上述脚本生成以下内容output(this output will vary on your system due to randomization)-

    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

以上是 如果至少有一个或多个值匹配,如何对 R 数据框行进行子集化? 的全部内容, 来源链接: utcz.com/z/338660.html

回到顶部