a <- data.frame(type=c("A", "A","A", "B", "B"), x1 = c(4,7,9,1,2),x2=c(6,4,6,3,7),
x3 = c(9,1,2,8,9))
library(dplyr)
tmp <-
a %>%
group_by(type) %>%
summarise(no_rows = length(type))
for(i in unique(a$type)){
n <- max(tmp$no_rows) - nrow(a[a$type == i,])
nn <- nrow(a)
if(n > 0){
for(ii in 1:n){
a[nn+ii,] <- c(i,NA,NA,NA)
}
}
}
a <- a[order(a$type),]
a$timevar <- seq(1:max(tmp$no_rows))
b<-reshape(a,timevar="timevar",idvar="type",direction="wide",drop = F)
b
type x1.1 x2.1 x3.1 x1.2 x2.2 x3.2 x1.3 x2.3 x3.3
1 A 4 6 9 7 4 1 9 6 2
4 B 1 3 8 2 7 9 <NA> <NA> <NA>
歡迎的StackOverflow!我注意到Vector B是多維的,所以這就是我們所說的R語言中的data.frame或矩陣。你是這個意思嗎?或者你想要3個獨立的載體? –
我們也可以調用Vector B a Matrix。我編輯了原始問題,使其更加清晰。謝謝! – SDM1212
當然。我做了一個特別的解決方案,然後我們受到了無評論的惡魔怪獸的攻擊,所以我不得不刪除它。如果你的數據很大或者你需要做很多工作,我們應該找到一個更加程序化的解決方案。唯一真正的困難是,在這種格式中,我們需要爲缺失的B單元格添加NA。因此,我認爲通過'for'循環,'cbind'和'rbind'使用'fill = T'是一種方法去。 –