繁体   English   中英

如何在不聚合记录的情况下将长格式的数据框转换/重塑为宽格式?

[英]How do I convert/reshape a data frame in long format to a wide format without aggregating the records?

由此:

> 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列扩充数据框,然后使用dcast()来自reshape2 package:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM