如何在R中使用pivot_longer将宽格式tibble重排为指定字段的长表?
转换方案
完全可以用pivot_longer实现需求,核心是利用.value特殊参数自动识别拆分后的指标列,不需要额外做合并操作,具体实现代码如下:
# 需提前加载tidyr包,tidyverse环境默认已包含 library(tidyr) df_long <- df %>% pivot_longer( cols = !club, # 除club列外的所有列参与重塑 names_sep = "_", # 按下划线拆分原列名 names_to = c("year", ".value") # 拆分后第一段存为year列,第二段作为新列名 )
输出效果
转换后会直接生成你要求的club、year、revenue、division列顺序的长表,示例输出如下(revenue为随机数,和你运行结果会有差异):
# A tibble: 6 × 4 club year revenue division <chr> <chr> <dbl> <chr> 1 Avai 2019 242. A 2 Avai 2018 167. B 3 Avai 2017 271. A 4 Figueirense 2019 134. B 5 Figueirense 2018 289. B 6 Figueirense 2017 195. B
如果需要严格固定列顺序,可以在代码末尾加select(club, year, revenue, division)即可。
内容的提问来源于stack exchange,提问作者Enzo De Gaspari Ramos
相关产品推荐
相关产品推荐

