You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R语言中循环计算多个数据框的均值与标准差

批量计算多个数据框的均值与标准差

方法一:使用for循环

先匹配并获取所有目标数据框的名称,再逐个计算均值和标准差并存储结果:

# 获取所有命名为bmw_1到bmw_9的数据框名称
bmw_df_names <- ls(pattern = "^bmw_\\d$")

# 创建空列表存储计算结果
calc_results <- list()

# 循环处理每个数据框
for(name in bmw_df_names) {
  # 获取对应的数据框对象
  current_df <- get(name)
  # 按列计算均值(na.rm=TRUE用于忽略缺失值,可根据需求调整)
  df_mean <- colMeans(current_df, na.rm = TRUE)
  # 按列计算标准差
  df_sd <- apply(current_df, 2, sd, na.rm = TRUE)
  # 将结果存入列表,以数据框名称为键
  calc_results[[name]] <- list(均值 = df_mean, 标准差 = df_sd)
}

# 查看最终结果
calc_results

方法二:使用lapply(更简洁的向量化方式)

利用lapply批量处理,代码更紧凑:

# 获取目标数据框名称
bmw_df_names <- ls(pattern = "^bmw_\\d$")

# 批量计算并生成结果列表
calc_results <- lapply(bmw_df_names, function(name) {
  current_df <- get(name)
  list(
    均值 = colMeans(current_df, na.rm = TRUE),
    标准差 = apply(current_df, 2, sd, na.rm = TRUE)
  )
})

# 为列表元素添加数据框名称作为标识
names(calc_results) <- bmw_df_names

# 查看结果
calc_results

说明:如果你的数据框是单列结构,直接用mean(current_df, na.rm = TRUE)和sd(current_df, na.rm = TRUE)即可,上述代码默认处理多列数据框的按列计算场景,适用性更广。

内容的提问来源于stack exchange,提问作者María del Carmen Montoya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 09:54:33