我试图对每小时的气候数据进行一些重塑,但我无法做到正确...... 这是数据,一天可变(365级。+ / - 1取决于年份),一小时变量(24级),一个数字温度(+/- 8760 obs)。
head(df)
#### .day .hour temperature
#### 2 2013-01-01 1 19
#### 3 2013-01-01 2 19
#### 4 2013-01-01 3 18
#### 5 2013-01-01 4 18
我的预期输出是像这样的data.frame,但是我需要温度值而不是值1(长度)......
.day 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
1 2013-01-01 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2 2013-01-02 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
3 2013-01-03 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
4 2013-01-04 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
此输出是使用dcast(.day~.hour)
生成的,Il也尝试了一些tidyr
但没有成功。我怎样才能做到这一点?那么如果某处缺少某些线条(缺少一天等等)呢?感谢。
答案 0 :(得分:1)
要将数据从长格式重新格式化为格式,我们可以使用tidyr
具有相关函数spread
。帮助文件在此处有足够的示例:http://cran.r-project.org/web/packages/tidyr/tidyr.pdf#page.14
require(tidyr)
spread(df, .hour, temperature, fill = NA) #fill any missing data with NA
此处提供了可用于实现相同更改的其他选项的全面介绍:https://stackoverflow.com/a/9617424/2724299