我在一个数据集中按国家/地区(行)和年份列表(列标题)列出了GDP值。我正在尝试将它与另一个数据集结合起来,其中值代表GINI。当“年”不是变量时,如何按国家和年份合并这两个海量数据集? (我如何操纵每个数据集,以便将“年份”作为一列引入,并且每年都有重复的国家代表?
即从图像中的顶部数据帧到底部数据帧?
将顶部数据集从宽到长重塑,然后与其他数据集合并。有many,很多,用不同的方法在这个网站上重塑数据的例子。一个常见的是使用tidyr
包,它有一个名为gather
的功能,可以满足您的需要。
long_table <- tidyr::gather(wide_table, key = year, value = GDP, 1960:1962)
或者你数据集中去年的任何内容。如果您还没有tidyr
,可以使用install.packages('tidyr')
安装dput(..)
软件包。
下次,请避免放置数据图片并提供可重复的数据,以便其他人更容易准确回答。你可以使用#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
输出是:
dput(df)
(PS:正如其他人已经建议的那样,你应该总是使用Power Query
分享样本数据)