У меня есть список идентично отсортированных кадров данных. Более конкретно, это вмененные кадры данных, которые я получаю после выполнения нескольких вменений с помощью пакета AmeliaII. Теперь я хочу создать новый фрейм данных, идентичный по структуре, но содержащий средние значения ячеек, рассчитанных по фреймам данных.
Способ, которым я сейчас достигаю, следующий:
## do the Amelia run ------------------------------------------------------------
a.out <- amelia(merged, m=5, ts="Year", cs ="GEO",polytime=1)
## Calculate the output statistics ----------------------------------------------
left.side <- a.out$imputations[[1]][,1:2]
a.out.ncol <- ncol(a.out$imputations[[1]])
a <- a.out$imputations[[1]][,3:a.out.ncol]
b <- a.out$imputations[[2]][,3:a.out.ncol]
c <- a.out$imputations[[3]][,3:a.out.ncol]
d <- a.out$imputations[[4]][,3:a.out.ncol]
e <- a.out$imputations[[5]][,3:a.out.ncol]
# Calculate the Mean of the matrices
mean.right <- apply(abind(a,b,c,d,e,f,g,h,i,j,along=3),c(1,2),mean)
# recombine factors with values
mean <- cbind(left.side,mean.right)
Я полагаю, что есть гораздо лучший способ сделать это, используя apply, plyr или тому подобное, но как R Newbie я действительно немного потерян здесь У вас есть предложения, как это сделать?