如何仅根据分类列中的一个值对具有条件的 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(thisoutputwillvaryonyoursystemduetorandomization)-
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 z1 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 z1 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 z1 First 8 7 8 2 First 9 9 10 3 First 3 2 9 4 First 10 6 9