📜  在 R 编程中对不规则数组应用函数– tapply()函数(1)

📅  最后修改于: 2023-12-03 15:07:48.022000             🧑  作者: Mango

在R编程中对不规则数组应用函数– tapply()函数

在R编程中,我们经常需要对不规则数组进行数据分析和统计分析。这时候,我们可以使用tapply()函数对数组进行分组以及应用函数。

tapply()函数的语法

tapply(X, INDEX, FUN, ..., simplify = TRUE)

参数说明:

  • X - 数据向量
  • INDEX - 分组变量,可以为因子、列表、数据框等
  • FUN - 应用的函数,可以自定义或使用已有的函数
  • ... - 传递给函数的其他参数
  • simplify - 是否简化输出,为TRUE时,输出结果为矩阵或数组;为FALSE时,输出结果为列表
tapply()函数的示例

首先,我们来看一个简单的示例。假设我们有以下数据集:

data <- data.frame(
  gender=c("M", "F", "M", "F", "F", "M", "M"),
  age=c(20, 25, 30, 35, 40, 45, 50),
  salary=c(5000, 6000, 8000, 7000, 9000, 10000, 12000)
)

我们想要按性别对数据集进行分组,然后对每个分组计算平均薪资。这时候,可以使用tapply()函数,如下所示:

tapply(data$salary, data$gender, mean)

输出结果为:

F     M 
8000 9666.666

可以看出,对于性别为F的分组,平均薪资是8000;对于性别为M的分组,平均薪资是9666.666。

除了可以使用内置函数,我们还可以自定义函数。例如,我们想要计算每个分组的标准差和方差,可以定义如下函数:

my_stats <- function(x) {
  c(mean=mean(x), sd=sd(x))
}

然后,使用tapply()函数计算结果,如下所示:

tapply(data$salary, data$gender, my_stats)

输出结果为:

$F
     mean        sd 
     8000 1732.051

$M
        mean         sd 
9666.667    2477.678

可以看到,对于性别为F的分组,平均薪资是8000,标准差是1732.051;对于性别为M的分组,平均薪资是9666.666,标准差是2477.678。

综上所述,tapply()函数在进行数据分析和统计分析时,能够对不规则数组进行有效分组和应用函数,为我们的工作带来很大的便利。