首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重新排序dcast数据帧

重新排序dcast数据帧
EN

Stack Overflow用户
提问于 2013-03-13 03:10:21
回答 2查看 4.7K关注 0票数 7

是否有可能重新排序数据帧的列,这是dcast()调用E.x的结果。

给定数据:

代码语言:javascript
复制
> 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()时,如下所示:

代码语言:javascript
复制
library(reshape2)
dcast(copyOfRes, docName ~ week_number, length)

结果是:

代码语言:javascript
复制
  docName 2 11
1    doc1 0 10
2    doc2 1  1

我想要week_number值递减的数据帧如下:

代码语言:javascript
复制
  docName 11  2
1    doc1 10 0
2    doc2 1  1

我试过做dcast(copyOfRes, docName ~ sort(week_number, decreasing= TRUE), length),但它仍然不起作用。有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-13 03:21:54

您可以在此处与rev一起使用reorder

代码语言:javascript
复制
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
票数 6
EN

Stack Overflow用户

发布于 2013-03-13 03:21:44

您可以在dcast()内部使用factor()设置适当的级别顺序。

代码语言:javascript
复制
 dcast(copyOfRes, 
   docName ~ factor(week_number,levels=unique(week_number)), length)
      docName 11 2
    1    doc1 10 0
    2    doc2  1 1
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15370042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档