2

R で使用するacastと、データ フレームの並べ替えがめちゃくちゃになります。私のdata.frameがこのように見えると想像してください

  V1 V2 V3
1  D  Y  0
2  E  X  0
3  C  N  0
4  B  M  0
5  A  S  0

実行acast(dd, V1 ~ V2, value.var="V3", fill = 0)すると、順序付けられた行列が得られます。

  M N S X Y
A 0 0 0 0 0
B 0 0 0 0 0
C 0 0 0 0 0
D 0 0 0 0 0
E 0 0 0 0 0

データ フレームの元の並べ替えを維持するにはどうすればよいですか?

4

2 に答える 2

3

V1とを因数V2にします。そうするとき、それらのレベルを希望する順序にします。因子を作成するときのデフォルトの順序付けは、それらをソートすることです。これが、最初に行った順序を取得した理由です。

d <- data.frame(V1=c("D", "E", "C", "B", "A"), V2=c("Y","X","N","M","S"), V3=0)
d$V1 <- factor(d$V1, levels=unique(d$V1))
d$V2 <- factor(d$V2, levels=unique(d$V2))
> acast(d, V1~V2, value.var="V3", fun.aggregate=sum)
  Y X N M S
D 0 0 0 0 0
E 0 0 0 0 0
C 0 0 0 0 0
B 0 0 0 0 0
A 0 0 0 0 0
于 2013-09-20T13:08:26.573 に答える