是否有可能重新排序数据帧的列,这是dcast()调用E.x的结果。
给定数据:
> dput(copyOfRes)
structure(list(docName = c("doc2", "doc1", "doc1", "doc1", "doc1",
"doc1", "doc1", "doc1", "doc1", "doc1", "doc1", "doc2"), day_of_week = c(11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 2)), .Names = c("docName",
"week_number"), row.names = c(NA, -12L), class = "data.frame")因此,当我使用dcast()时,如下所示:
library(reshape2)
dcast(copyOfRes, docName ~ week_number, length)结果是:
docName 2 11
1 doc1 0 10
2 doc2 1 1我想要week_number值递减的数据帧如下:
docName 11 2
1 doc1 10 0
2 doc2 1 1我试过做dcast(copyOfRes, docName ~ sort(week_number, decreasing= TRUE), length),但它仍然不起作用。有什么建议吗?
发布于 2013-03-13 03:21:54
您可以在此处与rev一起使用reorder
dcast(copyOfRes, docName ~ reorder(week_number,rev(week_number)), length)
Using week_number as value column: use value.var to override.
docName 11 2
1 doc1 10 0
2 doc2 1 1发布于 2013-03-13 03:21:44
您可以在dcast()内部使用factor()设置适当的级别顺序。
dcast(copyOfRes,
docName ~ factor(week_number,levels=unique(week_number)), length)
docName 11 2
1 doc1 10 0
2 doc2 1 1https://stackoverflow.com/questions/15370042
复制相似问题