【发布时间】:2015-07-06 04:56:00
【问题描述】:
在“Reshape2 简介”包中,Sean C. Anderson 提供了以下示例。
他使用空气质量数据并重命名列名
names(airquality) <- tolower(names(airquality))
数据看起来像
# ozone solar.r wind temp month day
# 1 41 190 7.4 67 5 1
# 2 36 118 8.0 72 5 2
# 3 12 149 12.6 74 5 3
# 4 18 313 11.5 62 5 4
# 5 NA NA 14.3 56 5 5
# 6 28 NA 14.9 66 5 6
然后他将它们融化
aql <- melt(airquality, id.vars = c("month", "day"))
得到
# month day variable value
# 1 5 1 ozone 41
# 2 5 2 ozone 36
# 3 5 3 ozone 12
# 4 5 4 ozone 18
# 5 5 5 ozone NA
# 6 5 6 ozone 28
最后他得到了原始的(不同的列顺序)
aqw <- dcast(aql, month + day ~ variable)
我的问题
现在假设我们没有 ID 变量(即月份和日期),并按如下方式融合数据
aql <- melt(airquality)
看起来像
# variable value
# 1 ozone 41
# 2 ozone 36
# 3 ozone 12
# 4 ozone 18
# 5 ozone NA
# 6 ozone 28
我的问题是如何获得原版?原始的将对应于
# ozone solar.r wind temp
# 1 41 190 7.4 67
# 2 36 118 8.0 72
# 3 12 149 12.6 74
# 4 18 313 11.5 62
# 5 NA NA 14.3 56
# 6 28 NA 14.9 66
【问题讨论】:
-
您不应该在原始问题中编辑“解决方案”。如果您有不同/更好的解决方案,您应该在下面添加您的答案。否则,就接受你认为最好的那个。
-
如果您使用的是 data.table,其重塑工具的教程在这里:rawgit.com/wiki/Rdatatable/data.table/vignettes/… 您的问题除了标签之外没有提到 data.table...
标签: r data.table reshape2