如何在 R 数据帧中找到 ID 明智的频率?
要在R数据帧中查找ID明智的频率,我们可以在使用group_by函数定义ID后使用dplyr包的汇总函数,我们想要查找频率的列也将放置在group_by函数中。
查看以下示例以了解如何完成。
示例1
以下代码段创建了一个示例数据框-
ID<-sample(1:4,20,replace=TRUE) Sales<-sample(1:10,20,replace=TRUE) df1<-data.frame(ID,Sales) df1
创建以下数据框-
ID Sales 1 4 4 2 1 3 3 4 9 4 4 8 5 2 6 6 1 9 7 2 8 8 1 8 9 1 6 10 1 1 11 4 6 12 2 9 13 2 10 14 2 6 15 3 2 16 3 9 17 4 6 18 1 8 19 2 10 20 2 1
要加载dplyr包并在df1中创建一个ID明智的频率列,请将以下代码添加到上面的代码段中-
library(dplyr) df1%>%group_by(ID,Sales)%>%summarise(Frequency=n()) `summarise()` regrouping output by 'ID' (override with `.groups` argument) # A tibble: 16 x 3 # Groups: ID [4]输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
ID Sales Frequency <int> <int> <int> 1 1 1 1 2 1 3 1 3 1 6 1 4 1 8 2 5 1 9 1 6 2 1 1 7 2 6 2 8 2 8 1 9 2 9 1 10 2 10 2 11 3 2 1 12 3 9 1 13 4 4 1 14 4 6 2 15 4 8 1 16 4 9 1
示例2
以下代码段创建了一个示例数据框-
ID<-sample(0:2,20,replace=TRUE) Group<-sample(c("I","II","III"),20,replace=TRUE) df2<-data.frame(ID,Group) df2
创建以下数据框-
ID Group 1 2 III 2 0 I 3 0 I 4 0 I 5 2 III 6 0 II 7 2 II 8 2 II 9 1 III 10 2 I 11 1 II 12 1 I 13 1 I 14 1 I 15 2 II 16 0 II 17 1 I 18 2 I 19 2 I 20 0 III
要在df2中创建一个ID明智的频率列,请将以下代码添加到上面的代码段中-
df2%>%group_by(ID,Group)%>%summarise(Frequency=n()) `summarise()` regrouping output by 'ID' (override with `.groups` argument) # A tibble: 9 x 3 # Groups: ID [3]输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
ID Group Frequency <int><chr> <int> 1 0 I 3 2 0 II 2 3 0 III 1 4 1 I 4 5 1 II 1 6 1 III 1 7 2 I 3 8 2 II 3 9 2 III 2