3
從這:如何在不彙總記錄的情況下將長格式的數據框轉換爲寬格式?
> 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 <- 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