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

如何在多文件列不完整时计算指定列的均值?

解决方案

核心问题是直接引用不存在的列导致报错,只需先筛选出数据中实际存在的目标列,再进行后续计算即可:

merged <- rbindlist(dt.tidied, fill = TRUE, use.names = TRUE)

# 定义目标列
target_cols <- c('Date/Time', 'C1 (C1)', 'C2 (C2)', 'C5 (C5)', 'C8 (C8)', 'C9 (C9)', 'C10 (C10)')

# 筛选出merged中实际存在的目标列
existing_cols <- intersect(target_cols, colnames(merged))

# 仅处理存在的列,避免报错
abc <- merged[, ..existing_cols] %>%
  as_tibble() %>%
  group_by(Time_sp = lubridate::floor_date(`Date/Time`, "5 mins")) %>% 
  summarise(across(where(is.numeric), ~ if(mean(is.na(.x)) > 0.5) NA else mean(.x, na.rm = TRUE)))

write.csv(abc, paste0(dirlist[idx],"_mean.csv"), row.names = FALSE)

关键修改说明

  • 用intersect(target_cols, colnames(merged))自动匹配数据中实际存在的目标列,忽略不存在的列
  • 后续所有操作基于筛选后的existing_cols,彻底避免因引用不存在的列抛出错误
  • 保留原有的均值计算逻辑:仅当列的NA占比不超过50%时计算均值,否则返回NA

内容的提问来源于stack exchange,提问作者Alexia k Boston

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 08:02:46