3

例えば:

require(reshape2)
var1 = c(rep('john', 3), rep('aron', 2), 'frank')
var2 = c('john', 'aron', 'frank', 'aron', 'frank', 'frank')
var3 = rnorm(6)
mydat = data.frame(var1, var2, var3)
acast(mydat, var1~var2)

結果:

Using var3 as value column: use value.var to override.
         aron   frank    john
aron  0.32026 0.22858      NA
frank      NA 0.57658      NA
john  0.30543 1.16453 -2.0021

これは元の順序を台無しにします。理想的には、下の三角形に 3 つの NA をうまく表示したいと考えています。

4

1 に答える 1

3

一般に、「... の順序を維持するにはどうすればよいか」という質問が出てきた場合、最初の解決策の 1 つとして、 s のfactor目的の順序を指定します。factor

mydat$var1 <- factor(mydat$var1, c("john", "aron", "frank"))
mydat$var2 <- factor(mydat$var2, c("john", "aron", "frank"))
acast(mydat, var1~var2)
# Using var3 as value column: use value.var to override.
#           john       aron      frank
# john  0.464706 1.77877633  0.5925874
# aron        NA 0.04940059 -0.3180871
# frank       NA         NA -1.3888493
于 2013-10-31T15:49:30.820 に答える