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

如何用简单函数将数据框列值转为含变量名的格式?

在R中将数据框列值转换为「变量名_原数值」格式

这里提供两种简洁的实现方法,适配大型数据集的处理需求:

方法一:Base R 原生实现(无需额外安装包)

# 原始数据框
df <- data.frame(x = c(1,2,3,4),
                 y = c(2,4,5,6) )

# 转换处理
df[] <- lapply(names(df), function(col_name) {
  paste0(col_name, "_", df[[col_name]])
})

通过lapply遍历所有列名,将列名与对应列的每个值拼接,df[]的写法能保留原数据框的结构与列名。

方法二:dplyr 包简洁实现(适合习惯tidyverse风格的用户)

如果已经使用tidyverse生态,用dplyr的across函数可以更直观地完成转换:

library(dplyr)

df <- df %>%
  mutate(across(everything(), ~ paste0(cur_column(), "_", .)))

across(everything())选中所有列,cur_column()自动获取当前处理的列名,~后的表达式完成拼接逻辑。

转换结果验证

执行上述任意方法后,输出数据框将符合预期:

print(df)
#>      x    y
#> 1 x_1 y_2
#> 2 x_2 y_4
#> 3 x_3 y_5
#> 4 x_4 y_6

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 17:15:42