来自这里:
> 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
最佳答案
由于 test
数据框中的 x
列没有唯一标识行,但您不想进行任何聚合,因此您需要使用唯一的 id
列扩充数据框,然后使用 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
关于r - 如何在不聚合记录的情况下将长格式的数据框转换/ reshape 为宽格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6233392/