如何在 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 中的其他常用函数:

如何在 R 中使用 dim() 函数
如何在 R 中使用 table() 函数
如何在R中使用sign()函数

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注