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

R语言:将数据框首列列名追加至后续列非NA字符串后(支持列表)

解决方案

核心处理函数

先定义一个处理单个数据框的函数,自动适配任意列数:

library(dplyr)

process_single_df <- function(df) {
  # 提取第一列的列名
  first_col_title <- colnames(df)[1]
  # 批量处理除第一列外的所有列
  df %>%
    mutate(across(-1, ~ifelse(!is.na(.), paste(., first_col_title, sep = " - "), .)))
}

处理数据框列表

方式1:用purrr实现优雅遍历(推荐)

借助purrr包的map函数,无需手动写循环:

library(purrr)

# 假设你的数据框列表名为 df_list
processed_list <- map(df_list, process_single_df)

方式2:用for循环实现

如果偏好传统for循环,也可以这样写:

# 初始化空列表存储结果
processed_list <- vector("list", length(df_list))

for (idx in seq_along(df_list)) {
  processed_list[[idx]] <- process_single_df(df_list[[idx]])
}

效果验证

以你提供的示例数据框为例:

# 构造示例数据框
sample_df <- tibble(
  `Basics Chest` = c(NA, NA, NA, NA),
  Anatomie = c(NA, NA, NA, "CT Protokolle Chest Standard"),
  Atlas = c("Xray", "CT", "PET-CT", NA)
)

处理后输出结果:

# A tibble: 4 × 3
  `Basics Chest` Anatomie                                  Atlas                   
  <lgl>          <chr>                                     <chr>                   
1 NA             NA                                        Xray - Basics Chest     
2 NA             NA                                        CT - Basics Chest       
3 NA             NA                                        PET-CT - Basics Chest   
4 NA             CT Protokolle Chest Standard - Basics Chest NA  

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 06:30:48