Это пример того, чего я хочу достичь.Я использую цикл for в R. Однако я хочу отойти от этого, так как он слишком медленный для больших данных.Что является лучшим подходом, который все еще работает быстро, когда выходные данные представляют собой намного больший размер данных (например,> 1000 столбцов и строк)?
df <- data.frame(id=c('a', 'a', 'b', 'c', 'c', 'c'), code=c(1,2,3,3,1,2), stringsAsFactors = F)
uid <- unique(df$id)
out <- NULL
df
id code
1 a 1
2 a 2
3 b 3
4 c 3
5 c 1
6 c 2
for (i in uid){
z <- t(df[df$id==i,])
colnames(z) <- z[2,]
z <- as.data.frame(z[2, , drop = FALSE])
out <- bind_rows(out, z)
}
out
1 2 3
1 1 2 <NA>
2 <NA> <NA> 3
3 1 2 3