我曾经使用reshape
图书馆并切换到reshape2
它应该更快。
但是作为函数的输出,我得到了非常奇怪的结果recast
:
- 使用
reshape::recast
,我以我想要的方式获得了适当的数据框。 - 使用
reshape2::recast
,我获得了一个带有标签的列表data
(这是我希望将其视为结果数据框的矩阵),labels
它本身就是一个包含我的 x 轴和 y 轴标签的列表。
我知道可以从那里按照我想要的方式重建我的数据框,但不能直接完成吗?
您可以通过简单地d
在recast
代码中添加一个来定义自己的函数:
redcast <- function (data, formula, ..., id.var, measure.var) {
if (any(c("id.vars", "measure.vars") %in% names(match.call()))) {
stop("Use var, not vars\n")
}
molten <- melt(data, id.var, measure.var)
dcast(molten, formula, ...)
}
redcast(french_fries, time ~ variable, id.var = 1:4)
# Aggregation function missing: defaulting to length
# time potato buttery grassy rancid painty
# 1 1 72 72 72 72 72
# 2 2 72 72 72 72 72
# 3 3 72 72 72 72 72
# 4 4 72 72 72 72 72
# 5 5 72 72 72 72 72
# 6 6 72 72 72 72 72
# 7 7 72 72 72 72 72
# 8 8 72 72 72 72 72
# 9 9 60 60 60 60 60
# 10 10 60 60 60 60 60