我在一个数据集中按国家/地区(行)和年份列表(列标题)列出了GDP值。我正在尝试将它与另一个数据集结合起来,其中值代表GINI。当“年”不是变量时,如何按国家和年份合并这两个海量数据集? (我如何操纵每个数据集,以便将“年份”作为一列引入,并且每年都有重复的国家代表?
即。从顶部数据框到图像中的底部数据框?
答案 0 :(得分:0)
将顶部数据集从宽到长重塑,然后与其他数据集合并。有许多many个例子,用不同的方法在本网站上重塑数据。一个常见的方法是使用tidyr
包,它有一个名为gather
的函数,可以满足您的需要。
long_table <- tidyr::gather(wide_table, key = year, value = GDP, 1960:1962)
或您数据集中去年的任何内容。如果您还没有安装tidyr
install.packages('tidyr')
个套餐,则可以安装dput(..)
个套餐。
下次请避免放置数据图片并提供可重复的数据,以便其他人更容易回答。您可以使用Clipboard.SetImage(img);
rtftemp.Paste();
rtf.Select(rtf.TextLength, 0);
rtf.SelectedRtf = rtftemp.Rtf;
来执行此操作。
答案 1 :(得分:0)
希望这有帮助!
#sample data (added 'X' before numeric year columns as R doesn't allow column name to start with digit)
df <- data.frame(Country_Name=c('Belgium','Benin'),
X1960=c(123,234),
X1961=c(567,890))
library(dplyr)
library(tidyr)
df_new <- df %>%
gather(Year, GDP, -Country_Name)
df_new$Year <- gsub('X','',df_new$Year )
df_new
输出是:
Country_Name Year GDP
1 Belgium 1960 123
2 Benin 1960 234
3 Belgium 1961 567
4 Benin 1961 890
( PS:正如其他人已经建议的那样,您应该始终使用dput(df)
分享示例数据)
答案 2 :(得分:0)