如果找到提供的分组值之一,并且数值列值大于某个值,如何对 R 数据框进行子集化?


子集化是一种常用的技术,根据分析的目标,它可以用于许多不同的目的。如果找到提供的分组值之一,则对数据框进行子集化,这意味着如果分类变量中的任何值存在于分类列中,我们都希望进行子集化,并且如果我们想要包含大于某个值的数值列,则需要遵循以下步骤 -

  • 创建数据框。
  • 如果分类变量的任何提供的数值存在并且数值列值大于某个值,则对数据框进行子集化。

创建数据框

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

 实时演示

x<-rnorm(20)
Factor<-sample(c("Male","Female","Unknown"),20,replace=TRUE)
df<-data.frame(x,Factor)
df

执行后,上述脚本会生成以下输出(由于随机化,此输出会在您的系统上有所不同) -

        x     Factor
1 -0.83268524 Female
2 1.66904204  Male
3 0.26228885  Unknown
4 0.42511920  Male
5 0.67910328  Female
6 -0.82505888 Female
7 -0.06084790 Male
8 0.56949099  Unknown
9 0.79874121  Female
10 -0.09112936 Unknown
11 -1.04839717 Male
12 -1.24128634 Unknown
13 1.51186118  Unknown
14 -0.79498005 Unknown
15 0.18607842  Male
16 -0.60505867 Female
17 1.24925658  Male
18 1.14835757  Male
19 -0.24867122 Female
20 0.59079712 Unknown

对数据框进行子集化

加载 dplyr 包,如果 Factor 列中存在 Male 或 Female,并且 x 大于 0.5,则对 df 进行子集化 -

library(dplyr)
x<-rnorm(20)
Factor<-sample(c("Male","Female","Unknown"),20,replace=TRUE)
df<-data.frame(x,Factor)
df %>% filter(x>0.5,Factor=="Male"|Factor=="Female")

输出

      x    Factor
1 1.6690420 Male
2 0.6791033 Female
3 0.7987412 Female
4 1.2492566 Male
5 1.1483576 Male

更新于: 2021-08-13

113 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告