使用pivot_longer后,如何将DataFrame转为年份为行、国家为列
解决方案
步骤1:将原始宽格式数据转成长格式(若未完成)
如果你的原始数据是年份作为列的宽格式,先使用pivot_longer把年份列收拢为长格式:
library(tidyr) # 转换为长格式:提取年份和对应GDP值 gdp_long <- gdp_df %>% pivot_longer( cols = `1997`:`2006`, # 指定所有年份列的范围 names_to = "year", # 新列名:存储年份 values_to = "gdp_value" # 新列名:存储对应年份的GDP值 ) %>% select(-`Series Name`) # 若Series Name列全为"GDP",可移除该列简化数据
步骤2:将长格式转成目标宽格式
接着用pivot_wider把国家转为列,年份作为行:
# 转换为目标结构:年份为行,各国GDP为列 gdp_final <- gdp_long %>% pivot_wider( names_from = Country, # 用Country列的取值作为新列名(如西班牙、法国等) values_from = gdp_value # 对应列填充GDP数值 ) %>% arrange(year) # 按年份升序排序(可选操作)
转换后的数据结构会变为:
| year | 西班牙 | 法国 | ... |
|---|---|---|---|
| 1997 | xxx | yyy | ... |
| 1998 | xxx | yyy | ... |
| ... | ... | ... | ... |
| 2006 | xxx | yyy | ... |
内容的提问来源于stack exchange,提问作者Joe
相关产品推荐
相关产品推荐

