如何在R中计算文本文件指定列的均值?
修改R代码以计算指定列的15分钟均值
直接修改summarise里的across参数,指定需要计算均值的目标列即可,以下是修改后的完整代码:
# 定义需要计算均值的指定列 target_cols <- c("Temp [C]", "Press [Pa]", "Pow [W]") xyz <- xy %>% as_tibble() %>% group_by(time_sp = lubridate::floor_date(`Date/Time`, "15 mins")) %>% summarise(across(all_of(target_cols), ~ if(mean(is.na(.x)) > 0.5) NA else mean(.x, na.rm = TRUE))) write.csv(xyz, paste0(dirlist[idx],"15row.csv"), row.names = FALSE)
关键修改说明:
- 新增
target_cols变量,把需要计算的列名(和数据中完全一致,包括空格、括号)放在向量里,方便后续调整 - 把原来的
across(where(is.numeric), ...)替换成across(all_of(target_cols), ...),这样就只会对指定列执行均值计算 - 保留了原代码中对NA值的判断逻辑:如果某列NA占比超过50%,则该分组的均值返回NA,否则计算非NA值的均值
注意事项:
- 确保
target_cols里的列名和你的文本文件中的列名完全匹配,大小写、空格、符号都不能错 - 如果需要新增或删除目标列,直接修改
target_cols向量即可
内容的提问来源于stack exchange,提问作者Alexia k Boston
相关产品推荐
相关产品推荐

