首先,讀出的數據:
dat <- read.csv2(text = "region;2012;2013;2014;2015
1;2465;245;2158;645
2;44;57;687;564
3;545;784;897;512",
check.names = FALSE)
數據幀CON從包tidyr
轉換爲長格式與gather
。
library(tidyr)
dat_long <- gather(dat, key = "annee", , -region)
結果:
region annee value
1 1 2012 2465
2 2 2012 44
3 3 2012 545
4 1 2013 245
5 2 2013 57
6 3 2013 784
7 1 2014 2158
8 2 2014 687
9 3 2014 897
10 1 2015 645
11 2 2015 564
12 3 2015 512
您也可以產生你的問題的;
- 分隔結果:
write.csv2(dat_long, "", row.names = FALSE, quote = FALSE)
這導致:
region;annee;value
1;2012;2465
2;2012;44
3;2012;545
1;2013;245
2;2013;57
3;2013;784
1;2014;2158
2;2014;687
3;2014;897
1;2015;645
2;2015;564
3;2015;512
歡迎來到StackOverflow!請閱讀關於[如何提出一個好問題](http://stackoverflow.com/help/how-to-ask)以及如何給出[可重現的示例]的信息(http://stackoverflow.com/questions/ 5963269)。這會讓其他人更容易幫助你。 – Sotos
第一個表具有所謂的「寬格式」,後者具有「長格式」。搜索這些術語,你會在R中發現大量不同的方法,因爲這個問題經常出現,不同的包裝作者採取不同的方法。試試這個鏈接:https://stackoverflow.com/questions/2185252/reshaping-data-frame-from-wide-to-long-format – Bernhard
非常感謝,你的解釋很長,我在網上找到了答案:) – celianou