【问题标题】:How do I convert/reshape a data frame in long format to a wide format without aggregating the records?如何在不聚合记录的情况下将长格式的数据框转换/重塑为宽格式?
【发布时间】:2011-09-08 04:05:07
【问题描述】:

从这里:

> test <- data.frame(x = c("a","a","a"), y = c("b","b","c"), z = c(1,2,1))
> test
  x y z
1 a b 1
2 a b 2
3 a c 1

到这里:

  x b c
1 a 1 NA
2 a 2 NA
3 a NA 1

【问题讨论】:

    标签: r pivot reshape


    【解决方案1】:

    由于 test 数据框中的 x 列不能唯一标识行,但您不想进行任何聚合,因此您需要使用唯一的 @987654323 来扩充数据框@ 列,然后使用 reshape2 包中的 dcast()

    require(reshape2)
    test$id <- 1:nrow(test)
    
    
    > dcast(test, id + x ~ y, value_var = 'z')[,-1]
      x  b  c
    1 a  1 NA
    2 a  2 NA
    3 a NA  1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-16
      • 2022-01-11
      相关资源
      最近更新 更多