你可以使用以下来自dplyr包的函数,在R中按组创建一个频率表。
library(dplyr)
df %>%
group_by(var1, var2) %>%
summarize(Freq=n())
下面的例子展示了如何在实践中使用这种语法。
例子:按组创建频率表
假设我们在R中拥有以下数据框:
#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
position=c('G', 'G', 'G', 'F', 'G', 'F', 'F', 'C'))
#view data frame
df
team position
1 A G
2 A G
3 A G
4 A F
5 B G
6 B F
7 B F
8 B C
假设我们想创建一个频率表,显示每个职位的频率,按团队分组。
我们可以用下面的语法来做:
library(dplyr)
#calculate frequency of position, grouped by team
df %>%
group_by(team, position) %>%
summarize(Freq=n())
# A tibble: 5 x 3
# Groups: team [2]
team position Freq
1 A F 1
2 A G 3
3 B C 1
4 B F 2
5 B G 1
下面是如何解释输出结果的:
- A队的1名球员有'F'的位置
- A队的3名球员有'G'的位置
- B队的1名球员的位置是'C'
- B队2名球员的位置是 "F"
- B队的1名球员的位置是'G'
请注意,我们可以通过改变**summaryize()**函数中的变量名称来重新命名保存频率的列。
例如,我们可以将该列改名为 "计数":
library(dplyr)
#calculate frequency of position, grouped by team
df %>%
group_by(team, position) %>%
summarize(count=n())
# A tibble: 5 x 3
# Groups: team [2]
team position count
1 A F 1
2 A G 3
3 B C 1
4 B F 2
5 B G 1
其他资源
下面的教程解释了如何在dplyr中执行其他常用函数: