如何仅根据分类列中的一个值对具有条件的 R 数据框进行子集化?

要仅根据分类列中的一个值对具有条件的 R 数据框进行子集化,我们可以按照以下步骤操作 -

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

  • 然后,使用 dplyr 包的过滤器功能对具有条件的数据帧进行子集化。

创建数据框

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

Class<-sample(c("First","Second","Third","Fourth"),25,replace=TRUE)

x<-sample(1:10,25,replace=TRUE)

y<-sample(1:10,25,replace=TRUE)

z<-sample(1:10,25,replace=TRUE)

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

df

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

Class x y z

1 Fourth 10 6 7

2 First 10 1 5

3 Third 3 5 9

4 First 2 8 5

5 Third 4 9 9

6 First 2 5 3

7 Second 2 7 7

8 Third 6 4 4

9 First 2 9 3

10 First 10 7 4

11 Fourth 1 9 3

12 First 8 7 8

13 First 7 5 3

14 First 10 4 2

15 First 8 9 2

16 First 9 9 10

17 Third 1 1 10

18 Third 5 9 6

19 First 3 2 9

20 Third 8 5 4

21 Third 9 2 7

22 Second 5 9 3

23 Third 10 3 6

24 First 10 6 9

25 Third 1 10 4

使用基于分类列的条件子集数据框

当 x 大于 5 且 Class 为 First 时,使用过滤器函数对 df 进行子集化 -

Class<-sample(c("First","Second","Third","Fourth"),25,replace=TRUE)

x<-sample(1:10,25,replace=TRUE)

y<-sample(1:10,25,replace=TRUE)

z<-sample(1:10,25,replace=TRUE)

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

library(dplyr)

df %>% group_by(Class) %>% filter(x>5 & Class=="First")

输出

# A tibble: 8 x 4

# Groups: Class [1]

Class    x      y    z

 <chr> <int> <int> <int>

1 First 10    1    5

2 First 10    7    4

3 First 8     7    8

4 First 7     5    3

5 First 10    4    2

6 First 8     9    2

7 First 9     9    10

8 First 10    6    9

使用基于分类列的条件子集数据框

当 y 大于 5 且 Class 为 First 时,使用过滤器函数对 df 进行子集化 -

Class<-sample(c("First","Second","Third","Fourth"),25,replace=TRUE)

x<-sample(1:10,25,replace=TRUE)

y<-sample(1:10,25,replace=TRUE)

z<-sample(1:10,25,replace=TRUE)

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

library(dplyr)

df %>% group_by(Class) %>% filter(y>5 & Class=="First")

输出

# A tibble: 7 x 4

# Groups: Class [1]

Class    x     y    z

 <chr> <int> <int> <int>

1 First 2     8    5

2 First 2     9    3

3 First 10    7    4

4 First 8     7    8  

5 First 8     9    2

6 First 9     9    10

7 First 10    6    9

使用基于分类列的条件子集数据框

当 z 大于 5 且 Class 为 First 时,使用过滤器函数对 df 进行子集化 -

Class<-sample(c("First","Second","Third","Fourth"),25,replace=TRUE)

x<-sample(1:10,25,replace=TRUE)

y<-sample(1:10,25,replace=TRUE)

z<-sample(1:10,25,replace=TRUE)

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

library(dplyr)

df %>% group_by(Class) %>% filter(z>5 & Class=="First")

输出

# A tibble: 4 x 4

# Groups: Class [1]

Class    x    y    z

<chr> <int> <int> <int>

1 First 8    7    8

2 First 9    9    10

3 First 3    2    9

4 First 10   6    9

以上是 如何仅根据分类列中的一个值对具有条件的 R 数据框进行子集化? 的全部内容, 来源链接: utcz.com/z/359299.html

回到顶部