如何在 r 中使用 tapply() 函数(附示例)
R 中的tapply()函数可用于将函数应用于由另一个向量分组的向量。
该函数使用以下基本语法:
攻丝机(X,索引,乐趣,..)
金子:
- X :应用函数的向量
- INDEX :要分组的向量
- FUN :要应用的函数
以下示例展示了如何在 R 中使用以下数据框实际使用此函数:
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
points=c(14, 19, 13, 8, 15, 15, 17, 19),
assists=c(4, 3, 3, 5, 9, 14, 15, 12))
#view data frame
df
team position points assists
1 AG 14 4
2 AG 19 3
3 AF 13 3
4 AF 8 5
5 BG 15 9
6 BG 15 14
7 BF 17 15
8 BF 19 12
示例 1:将函数应用于变量,并按变量分组
以下代码展示了如何使用tapply()函数计算按团队分组的平均分值:
#calculate mean of points, grouped by team
tapply(df$points, df$team, mean)
AB
13.5 16.5
从结果我们可以看出:
- A队的平均分值为13.5 。
- B队的平均分值为16.5 。
请注意,您还可以在函数后面包含其他参数,例如na.rm ,以指示您要计算平均值,同时忽略数据框中的 NA 值:
#calculate mean of points, grouped by team
tapply(df$points, df$team, mean, na. rm = TRUE )
AB
13.5 16.5
示例 2:将函数应用于由多个变量分组的变量
以下代码展示了如何使用tapply()函数计算平均分值,按团队和位置分组:
# calculate mean of points, grouped by team and position
tapply(df$points, list(df$team, df$position), mean, na. rm = TRUE )
FG
A 10.5 16.5
B 18.0 15.0
从结果我们可以看出:
- A队和F位的平均分值为10.5 。
- A队G位置的平均分值为16.5 。
- B队F位置的平均分值为18.0 。
- B队G位置的平均分值为15.0 。
注意:在此示例中,我们按两个变量进行分组,但我们可以在list()函数中包含任意数量的变量以对更多变量进行分组。
其他资源
以下教程解释了如何使用 R 中的其他常用函数: