【问题标题】:How to make acast preserve order of variable in reshape2如何在reshape2中保持变量的顺序
【发布时间】:2013-10-31 15:45:55
【问题描述】:

例如:

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。

【问题讨论】:

    标签: r data-manipulation reshape2


    【解决方案1】:

    一般来说,当出现关于“我如何保持...的顺序”的问题时,我会尝试将factor 作为第一个解决方案之一,并指定我的factors 的所需顺序:

    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
    

    【讨论】:

      猜你喜欢
      • 2023-01-07
      • 1970-01-01
      • 2020-04-17
      • 2020-03-01
      • 2020-03-23
      • 2022-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多