reshape2中的重铸函数输出一个列表

时间:2013-07-12 06:31:20

标签: r reshape reshape2

我曾经使用reshape库并切换到reshape2,因为它应该更快。

但是我得到了非常奇怪的结果作为recast函数的输出:

  • 使用reshape::recast,我可以按照自己的方式获取正确的数据框 它。
  • 使用reshape2::recast,我获得了一个带有标签data的列表(其中 是我希望看作结果数据帧的矩阵)和labels,它本身就是一个包含我的x轴和y轴标签的列表。

我知道可以按照我想要的方式重建我的数据框,但不能直接完成吗?

1 个答案:

答案 0 :(得分:1)

您只需在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