【发布时间】:2017-10-03 23:32:39
【问题描述】:
我有一个这样的数据框:
X1 X2
1 Country Spain
2 Year 2016
3 Value 34.56
4 Country Italy
5 Year 2016
6 Value 48.21
7 Country USA
8 Year 2016
9 Value 84.37
10 Country France
11 Year 2016
12 Value 18.94
等等。
X1 和 X2 是列。我从一个网站上抓取了这些数据,但我想要这个:
Country Year Value
Spain 2016 34.56
Italy 2016 48.21
USA 2016 84.37
France 2016 18.94
我尝试了 gather() 函数,但失败了。非常感谢任何帮助。
【问题讨论】:
-
这是一个重复的问题,但我目前找不到好的帖子。最简单的方法是
unstack(dat, X2~X1)。其中 dat 是您的 data.frame 的名称。请注意,新列是因子,因此您必须遍历它们并将相关的列转换为数字。类似newDat[2:3] <- lapply(newDat[2:3], as.numeric)。