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

R语言:基于列表内dataframe的location值重命名rainfall列并合并数据

解决方案

方法1:tidyverse 实现(推荐,代码简洁易读)

library(tidyverse)

result <- alldfs %>%
  map(function(df) {
    # 提取当前数据框对应的唯一location值
    loc <- unique(df$location)
    # 仅保留rainfall列并重命名
    df %>%
      select(rainfall) %>%
      rename_with(~ paste0("Rainfall.", loc), rainfall)
  }) %>%
  # 拼接所有列得到最终数据框
  bind_cols()

方法2:base R 实现(无需加载第三方包)

processed <- list()
for (df in alldfs) {
  loc <- unique(df$location)
  col_name <- paste0("Rainfall.", loc)
  processed[[col_name]] <- df$rainfall
}
result <- as.data.frame(processed)

原有代码错误原因

你写的代码存在两个核心问题:

  1. df$rainfall 提取的是向量类型,rename_with 是数据框的操作函数,无法直接作用于向量
  2. rename_with 的参数传递逻辑错误,没有正确完成前缀和location值的拼接

上面两种实现都可以自动适配任意数量的location值,无需手动指定列名,输出的result结构完全符合你的需求,可以直接用于后续箱线图绘制。


内容的提问来源于stack exchange,提问作者Pad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 08:24:03