如何仅根据分类列中的一个值对具有条件的 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 z1 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