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

R语言数据框格式转换:请求实现指定结构的代码及依赖包

R语言实现数据框结构转换

所需依赖包

需要安装并加载tidyverse包(整合了dplyr数据操作工具和tidyr数据框变形工具)。

实现代码

# 首次使用时安装依赖包
install.packages("tidyverse")

# 加载包
library(tidyverse)

# 原数据框
df <- data.frame(ID = c(1, 2, 3), A = c(10, 20, 30), B = c(0, 0, 1))

# 1. 生成row列(将ID转换为X1/X2/X3格式)
df <- df %>% mutate(row = paste0("X", ID))

# 2. 生成每个row对应的_cen列(以原B列的值为_cen值,非对应行填充0)
cen_data <- df %>%
  select(row, B) %>%
  pivot_wider(
    names_from = row,
    values_from = B,
    names_glue = "{row}_cen"
  ) %>%
  mutate(across(everything(), ~replace_na(.x, 0)))

# 3. 合并数据并调整列顺序,得到目标结构
result <- df %>%
  select(row, A, B) %>%
  bind_cols(cen_data) %>%
  select(row, A, X1_cen, B, X2_cen, X3_cen)

# 查看最终结果
print(result)

运行结果

row  A X1_cen B X2_cen X3_cen
1  X1 10      0 0      0      0
2  X2 20      0 0      0      0
3  X3 30      0 1      0      1

自定义说明

  • 若_cen列需要使用其他数值(而非原B列的值),只需修改cen_data部分的select(row, B)为对应列,或直接替换为自定义数值;
  • 如需扩展更多变量(如C、D等),在select(row, A, B)中添加对应变量,并调整最终select的列顺序即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 16:23:15