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

如何基于数据框3行的值重命名列(R语言)

解决方案

可以通过以下步骤实现需求,全程使用tidyverse工具链完成:

  1. 生成新列名:从初始数据框的前3行、非variable列中,按列将对应值用下划线拼接成新列名;
  2. 替换列名:把原有的x1/x2等列名替换为新生成的名称;
  3. 清理数据:删除前3行填充数据,并将数值列转换为对应类型。

完整代码如下:

library(tidyverse)

init_df <- tribble(
  ~variable, ~x1, ~x2, ~x3, ~x4,
  "filler", "A", "B", "C", "D",
  "filler", "1", "2", "3", "4",
  "filler", "01", "02", "03", "04",
  "var1", "10", "12", "14", "16",
  "var2", "0.1", "0.2", "0.3", "0.4"
)

# 按列拼接前3行的非variable列值,生成新列名
new_col_names <- apply(init_df[1:3, -1], 2, paste, collapse = "_")

# 重命名列 + 删除填充行 + 转换数值类型
final_df <- init_df %>%
  rename_with(~ new_col_names, starts_with("x")) %>%
  slice(-(1:3)) %>%
  mutate(across(-variable, as.numeric))

print(final_df)

运行后输出结果与目标数据框完全一致:

# A tibble: 2 × 5
  variable A_1_01 B_2_02 C_3_03 D_4_04
  <chr>     <dbl>  <dbl>  <dbl>  <dbl>
1 var1        10     12     14     16
2 var2         0.1    0.2    0.3    0.4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 09:05:15