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

R中如何将行字段转为列并从另一列提取值填充对应新列

解决方案

你可以直接用tidyverse里的pivot_wider()函数实现需求,核心逻辑是先给每行加唯一行号避免聚合,再做宽表转换即可,完整可运行代码如下:

library(tidyverse)
# 构造示例原始数据,你可以替换成自己读取的实际数据
raw_data <- tibble(
  `Field Label 01` = c("Age", "Proceeds", "Age", "Proceeds", "Last Reported"),
  `Field Value 01` = c("11", "4000", "4", "1000", "05-20-2021")
)

# 核心转换逻辑
result <- raw_data %>%
  # 新增唯一行标识,保证每一行原始数据对应结果中的一行
  mutate(row_id = row_number()) %>%
  # 转换为宽表:names_from指定做列名的字段,values_from指定填充值的来源字段
  pivot_wider(
    names_from = `Field Label 01`,
    values_from = `Field Value 01`
  ) %>%
  # 将所有空值替换为你需要的"N/A"
  replace(is.na(.), "N/A") %>%
  # 删除辅助用的行id列
  select(-row_id) %>%
  # 如需匹配你给出的预期输出的行顺序,保留下面这行排序代码即可
  arrange(desc(Age != "N/A"), desc(Proceeds != "N/A"), desc(`Last Reported` != "N/A"))

运行后打印result即可得到完全符合要求的输出:

AgeProceedsLast Reported
11N/AN/A
4N/AN/A
N/A4000N/A
N/A1000N/A
N/AN/A05-20-2021

如果需要保留数值类型,转换完成后单独对Age、Proceeds列做数值格式转换即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 01:48:03