如果得到答复,我提前道歉。我就是找不到任何适合这种特殊情况的东西。
不管怎样,我有一张这样的桌子:
Country code Year_1960 Year_1961 Year_1962 Year_1963 Year_1964
<chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
1 Afghanistan AFG 8996351 9166764 9345868 9533954 9731361
2 Albania ALB 1608800 1659800 1711319 1762621 1814135
3 Algeria DZA 11124888 11404859 11690153 11985136 12295970
4 American Sam~ ASM 20013 20486 21117 21882 22698
5 Andorra AND 13411 14375 15370 16412 17469
6 Angola AGO 5643182 5753024 5866061 5980417 6093321
请注意,每个不同的年份都是一个标题。我想把这张表做成长条形。国家/地区和代码功能已采用该格式。我该怎么做?
我试过融化((、重塑((等等。我很挣扎。提前感谢您的帮助。
我希望这就是您想要的。您也可以将names_prefix = "Year_"
设置为names_pattern
的替代方案,如亲爱的Martin在评论中所指定的。
library(dplyr)
library(tidyr)
df %>%
pivot_longer(!c(Country, code),
names_to = 'Year',
values_to = 'Value',
names_pattern = "\w+_(\d+)")
# A tibble: 30 x 4
Country code Year Value
<chr> <chr> <chr> <int>
1 Afghanistan AFG 1960 8996351
2 Afghanistan AFG 1961 9166764
3 Afghanistan AFG 1962 9345868
4 Afghanistan AFG 1963 9533954
5 Afghanistan AFG 1964 9731361
6 Albania ALB 1960 1608800
7 Albania ALB 1961 1659800
8 Albania ALB 1962 1711319
9 Albania ALB 1963 1762621
10 Albania ALB 1964 1814135
# ... with 20 more rows