R语言实现tibble数据框列转行 避免Full.Name字段错乱
tibble宽转长(列转行)无错位实现方案
出现Full.Name匹配错乱,基本是手动拼接数据时未绑定主键、排序不一致导致的,用tidyr的原生变形函数即可一键实现无错转换,全程自动对齐姓名和对应数值,不会错位。
- 先安装并加载依赖(已安装可跳过安装步骤)
install.packages("tidyverse") library(tidyverse)
- 核心转换代码(你的原始数据命名为df即可直接运行)
df_long <- df %>% pivot_longer( cols = -Full.Name, names_to = c("metric", "year"), names_sep = "_", values_to = "value" ) %>% pivot_wider( names_from = metric, values_from = value )
运行后得到的结果共12行(6位人员*2个年份),列依次为Full.Name、year、freq、Ra,完全匹配目标结构。
避坑提示:不要手动拆分freq、Ra列分别做rbind再合并,只要行顺序出现一点偏差就会出现匹配错误,上述方法以Full.Name为行主键做长宽转换,从根源上避免错位问题。
内容的提问来源于stack exchange,提问作者Yeezus
相关产品推荐
相关产品推荐

