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

R 如何在不聚合记录的情况下将长格式的数据帧转换/重塑为宽格式?,r,pivot,reshape,R,Pivot,Reshape,由此: > 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 由于test数据框中的x列不是唯一标识行的,而且您不想进行任何聚合,因此需要使用唯一的id列来扩充数据框,然后使用restrape2包中的dcast(): require(reshape2) test$id <- 1:nrow(test)

由此:

> 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

由于
test
数据框中的
x
列不是唯一标识行的,而且您不想进行任何聚合,因此需要使用唯一的
id
列来扩充数据框,然后使用
restrape2
包中的
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
require(重塑2)
test$id dcast(test,id+x~y,value_var='z')[,-1]
x b c
1 a 1 NA
2 a 2 NA
3 a NA 1
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