7

dcast()呼び出しExの結果であるデータフレームの列を並べ替えることは可能ですか?

与えられたデータ:

> 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)ましたが、それでもうまくいきません。助言がありますか?

4

2 に答える 2

13

factor()セット内dcast()の適切なレベルの順序を使用できます。

 dcast(copyOfRes, 
   docName ~ factor(week_number,levels=unique(week_number)), length)
      docName 11 2
    1    doc1 10 0
    2    doc2  1 1
于 2013-03-12T19:21:43.653 に答える
6

reorderここで使用できますrev

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-12T19:21:54.093 に答える