现在位置: 首页 > R 教程 > 正文

R sapply() 函数 - 简化输出形式的列表应用

R 语言实例 R 语言实例

R sapply() 函数与 lapply() 类似,但会尝试将返回的列表简化为向量或矩阵。

当 lapply() 返回的结果可以简化为简单结构时,sapply() 会自动执行。

sapply() 函数语法格式如下:

sapply(X, FUN, ..., simplify = TRUE)

参数说明:

  • X 输入列表或向量。

  • FUN 要应用的函数。

  • simplify 是否尝试简化结果,默认 TRUE。

实例

# sapply vs lapply: 计算均值
scores <- list(
  张三 = c(88, 90, 85),
  李四 = c(92, 88, 91),
  王五 = c(76, 82, 78)
)

# lapply 返回列表
result_list <- lapply(scores, mean)
print("lapply 结果 (列表):")
print(result_list)

# sapply 返回向量
result_vec <- sapply(scores, mean)
print("sapply 结果 (向量):")
print(result_vec)

# sapply 用于数据框各列统计
df <- data.frame(数学 = c(88, 92, 76),
                 英语 = c(90, 88, 82),
                 编程 = c(85, 91, 78))
stat <- sapply(df, function(x) c(均值 = mean(x),
                                 标准差 = sd(x)))
print("多统计量:")
print(stat)

执行以上代码输出结果为:

[1] "lapply 结果 (列表):"
$张三
[1] 87.66667

$李四
[1] 90.33333

$王五
[1] 78.66667

[1] "sapply 结果 (向量):"
    张三     李四     王五
87.66667 90.33333 78.66667
[1] "多统计量:"
          数学    英语    编程
均值    85.333 86.667 84.667
标准差   8.327  4.163  6.506

R 语言实例 R 语言实例