在 R 数据帧中出现大于等于 n 次的子集组。
对于在R数据帧中出现少于n次的子集,我们可以使用dplyr包的过滤功能。
例如,如果我们有一个名为df的数据框,其中包含一个分组列,例如Group,那么我们可以使用下面提到的命令对出现次数少于4次的组进行子集化-
df%%group_by(Group)%%filter(n()=4)
示例1
以下代码段创建了一个示例数据框-
Grp<-sample(LETTERS[1:3],20,replace=TRUE) Response<-rpois(20,10) df1<-data.frame(Grp,Response) df1
创建了以下数据框
Grp Response 1 B 7 2 A 12 3 A 9 4 C 11 5 B 9 6 B 7 7 A 5 8 C 5 9 A 6 10 A 12 11 A 4 12 A 11 13 C 13 14 A 17 15 A 12 16 B 9 17 C 4 18 B 11 19 A 7 20 B 10
要基于分组列Grp加载dplyr包和子集df1,这些列Grp在上述创建的数据框中出现大于等于6次,请将以下代码添加到上述代码段中-
Grp<-sample(LETTERS[1:3],20,replace=TRUE) Response<-rpois(20,10) df1<-data.frame(Grp,Response) library(dplyr) df1%%group_by(Grp)%%filter(n()=6) # A tibble: 16 x 2 # Groups: Grp [2]输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
Grp Response <chr <int 1 B 7 2 A 12 3 A 9 4 B 9 5 B 7 6 A 5 7 A 6 8 A 12 9 A 4 10 A 11 11 A 17 12 A 12 13 B 9 14 B 11 15 A 7 16 B 10
示例2
以下代码段创建了一个示例数据框-
Class<-sample(c("First","Second","Third"),20,replace=TRUE)
Price<-sample(20:50,20)
df2<-data.frame(Class,Price)
df2创建了以下数据框
Class Price 1 First 45 2 Third 41 3 First 42 4 Second 30 5 First 31 6 Second 28 7 Third 24 8 Third 39 9 Third 44 10 Second 38 11 Third 37 12 Second 49 13 Third 23 14 Third 33 15 First 20 16 Second 36 17 Second 27 18 First 21 19 First 47 20 Third 34
要根据在上述创建的数据框中出现大于等于8次的分组列Class对df2进行子集,请将以下代码添加到上述代码段中-
Class<-sample(c("First","Second","Third"),20,replace=TRUE)
Price<-sample(20:50,20)
df2<-data.frame(Class,Price)
df2%%group_by(Class)%%filter(n()=8)
# A tibble: 8 x 2
# Groups: Class [1]输出结果如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
Class Price <chr <int 1 Third 41 2 Third 24 3 Third 39 4 Third 44 5 Third 37 6 Third 23 7 Third 33 8 Third 34
热门推荐
3 祝福语简短的微信
10 幼儿祝福语大全简短贺卡
11 感谢教官文案祝福语简短
12 鼠年同事祝福语简短创意
13 元旦祝福语 简短独特群发
14 妈咪跟我生日祝福语简短
15 给儿子新婚祝福语简短
16 伴娘祝福语长文案简短
17 恭喜高考完祝福语简短
18 生日祝福语送老公简短