我在数据框中合并列时遇到问题。
这就是我的数据框架:
HDI.Rank Country X1990 X1995 X2000 X2005 X2010 X2011 X2012 X2013
1 171 Afghanistan 121.3 103.0 94.5 84.0 75.3 73.6 72.0 70.2
2 85 Albania 35.1 29.1 23.2 18.2 14.8 14.2 13.8 13.3
3 83 Algeria 39.9 36.4 33.9 28.8 23.5 22.8 22.2 21.6
4 34 Andorra 7.5 5.2 3.9 3.1 2.4 2.4 2.3 2.2
5 149 Angola 133.4 132.7 128.3 121.5 109.6 107.0 104.3 101.6
6 58 Antigua and Barbuda 23.4 17.9 13.8 10.6 8.6 8.2 8.0 7.7
我想将所有年份列合并到一个名为Year的列中,但我不知道该怎么做,因为我仍然需要它来匹配每年的国家和HDI ..
到目前为止,我已经尝试过使用dplyr,但它没有用。
infant_data %>% unite(X1990, X1995, X2000, X2005, X2010, X2011, X2012, X2013, sep = "", remove = FALSE)
如果有人可以帮助我,那将非常感激。
答案 0 :(得分:2)
df <- data.frame(HDI.Rank=c(171L,85L,83L,34L,149L,58L),Country=c('Afghanistan','Albania',
'Algeria','Andorra','Angola','and Barbuda'),X1990=c(121.3,35.1,39.9,7.5,133.4,23.4),X1995=c(
103,29.1,36.4,5.2,132.7,17.9),X2000=c(94.5,23.2,33.9,3.9,128.3,13.8),X2005=c(84,18.2,28.8,3.1
,121.5,10.6),X2010=c(75.3,14.8,23.5,2.4,109.6,8.6),X2011=c(73.6,14.2,22.8,2.4,107,8.2),X2012=
c(72,13.8,22.2,2.3,104.3,8),X2013=c(70.2,13.3,21.6,2.2,101.6,7.7),stringsAsFactors=F);
数据强>
var result = _(data)
.groupBy('xType') // group each item by xType
.mapValues(function(value) { // map each key value
return _(value)
.flatMap('pets') // get all pets
.filter({ type: 'Cat' }) // Only get cats
.map('name') // get the names of all pets
.sort() // sort names
.value();
}).value();
答案 1 :(得分:0)
您可以尝试融化功能:
result=melt(infant_data,id.vars = c("HDI.Rank","Country"),variable.name = "year")[,year:=substring(year,2)]