我得到了一个温度数据帧:我每小时都会以摄氏温度为单位,所以我得到了一个像这样的csv文件:
Day Hour Temperature
11/10/2013 9:00 6
11/10/2013 10:00 11
11/10/2013 11:00 13
11/10/2013 12:00 6
11/10/2013 13:00 8
12/10/2013 9:00 7
12/10/2013 10:00 8
12/10/2013 11:00 11
12/10/2013 12:00 18
12/10/2013 13:00 12
13/10/2013 9:00 15
13/10/2013 10:00 8
13/10/2013 11:00 11
13/10/2013 12:00 16
13/10/2013 13:00 9
我正在尝试在R中对其进行重新排序,以便每天更改标题文本:
Day 9:00 10:00 11:00 12:00 13:00
11/10/2013 6 11 13 6 8
12/10/2013 7 8 11 18 12
13/10/2013 15 8 11 16 9
我尝试了几种cbind,sapply和unique的组合,但我不知道它们是否是重新排序data.frame的正确R元素。有什么想法,建议吗? 非常感谢
答案 0 :(得分:2)
这是您的数据作为数据框架。
temperatures <- read.table(
text = " Day Hour Temperature
11/10/2013 9:00 6
11/10/2013 10:00 11
11/10/2013 11:00 13
11/10/2013 12:00 6
11/10/2013 13:00 8
12/10/2013 9:00 7
12/10/2013 10:00 8
12/10/2013 11:00 11
12/10/2013 12:00 18
12/10/2013 13:00 12
13/10/2013 9:00 15
13/10/2013 10:00 8
13/10/2013 11:00 11
13/10/2013 12:00 16
13/10/2013 13:00 9",
header = TRUE
)
以下是Roland使用dcast
建议的解决方案。
library(reshape2)
dcast(temperatures, Day ~ Hour, value.var = "Temperature")
仅供参考,您正在“重塑”数据,而不是“重新排序”它(这意味着更改行顺序但保留列相同;请使用sort
或plyr::arrange
。
使用基数R:
reshape(
temperatures,
direction = "wide",
idvar = "Day",
timevar = "Hour",
v.names = "Temperature"
)