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

R语言含重复行的数据转换求助:实现指定表格结构转换

解决方案

你需要结合pivot_longer和pivot_wide两步操作来实现格式转换:

  1. 先用pivot_longer把B、G、R、Y这类颜色列转为长格式,提取颜色名称和对应数值;
  2. 再用pivot_wide把inst列的不同取值转为列名,并加上指定前缀。

完整代码示例:

library(tidyverse)

# 构造原始数据
df <- tibble(
  inst = c(0, 3),
  fish_ID = c(1, 1),
  B = c(136, 510),
  G = c(140, 7),
  R = c(249, 108),
  Y = c(68, 13)
)

# 格式转换
result <- df %>%
  pivot_longer(cols = B:Y, names_to = "Color", values_to = "Value") %>%
  pivot_wider(names_from = inst, values_from = Value, names_prefix = "inst_")

print(result)

运行后得到的结果与目标格式一致:

fish_IDColorinst_0inst_3
1B136510
1G1407
1R249108
1Y6813

你之前仅使用了pivot_longer,缺少后续的宽格式转换步骤,因此没能得到目标结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 20:42:06