查找 R 数据框中唯一组组合的数量。
r programmingserver side programmingprogramming更新于 2025/4/7 15:07:17
要查找 R 数据框中唯一组组合的数量,我们可以使用 dplyr 包的 count 函数以及 ungroup 函数。
例如,如果我们有一个名为 df 的数据框,其中包含三个分组列,即 G1、G2 和 G3,那么我们可以使用下面给出的命令来计算 df 中的唯一组组合。 −
count(df,G1,G2,G3)%%ungroup()
示例 1
以下代码片段创建了一个示例数据框 −
Grp1<-sample(1:2,20,replace=TRUE) Grp2<-sample(1:2,20,replace=TRUE) Grp3<-sample(1:2,20,replace=TRUE) df1<-data.frame(Grp1,Grp2,Grp3) df1
创建以下数据框
Grp1 Grp2 Grp3 1 2 1 1 2 1 2 1 3 2 1 2 4 2 2 1 5 1 1 1 6 1 1 2 7 2 1 1 8 2 1 2 9 2 1 2 10 1 1 1 11 2 1 1 12 2 1 1 13 2 2 2 14 2 1 2 15 1 2 2 16 2 2 1 17 2 1 2 18 2 2 1 19 1 1 2 20 2 2 2
要加载 dplyr 包并计算上面创建的数据框中 df1 中的唯一组组合,请将以下代码添加到上面的代码片段中 −
Grp1<-sample(1:2,20,replace=TRUE) Grp2<-sample(1:2,20,replace=TRUE) Grp3<-sample(1:2,20,replace=TRUE) df1<-data.frame(Grp1,Grp2,Grp3) library(dplyr) count(df1,Grp1,Grp2,Grp3)%%ungroup()
输出
如果将上述所有代码片段作为一个程序执行,则会生成以下输出 −
Grp1 Grp2 Grp3 n 1 1 1 1 2 2 1 1 2 2 3 1 2 1 1 4 1 2 2 1 5 2 1 1 4 6 2 1 2 5 7 2 2 1 3 8 2 2 2 2
示例 2
以下代码片段创建了一个示例数据框 −
Class1<-sample(c("First","Second","Third"),20,replace=TRUE) Class2<-sample(c("First","Second","Third"),20,replace=TRUE) Class3<-sample(c("First","Second","Third"),20,replace=TRUE) df2<-data.frame(Class1,Class2,Class3) df2
创建以下数据框
Class1 Class2 Class3 1 First Second Second 2 Second Third Second 3 Third Second Third 4 First Third Second 5 Second Third First 6 Second Third First 7 First Second Second 8 Third First Third 9 Third Third Third 10 Second First Third 11 Third Second Second 12 Second Second Second 13 Third Second Second 14 Third First Third 15 First First First 16 Third Third Third 17 Third Third Third 18 First Third Third 19 Third Second First 20 Second Second Second
要计算上面创建的数据框中 df2 中的唯一组组合,请将以下代码添加到上面的代码片段中 −
Class1<-sample(c("First","Second","Third"),20,replace=TRUE) Class2<-sample(c("First","Second","Third"),20,replace=TRUE) Class3<-sample(c("First","Second","Third"),20,replace=TRUE) df2<-data.frame(Class1,Class2,Class3) count(df2,Class1,Class2,Class3)%%ungroup()
输出
如果将上述所有代码片段作为一个程序执行,则会生成以下输出 −
Class1 Class2 Class3 n 1 First First First 1 2 First Second Second 2 3 First Third Second 1 4 First Third Third 1 5 Second First Third 1 6 Second Second Second 2 7 Second Third First 2 8 Second Third Second 1 9 Third First Third 2 10 Third Second First 1 11 Third Second Second 2 12 Third Second Third 1 13 Third Third Third 3