ich folgendes Problem habe, kann sagen, ich habe eine Funktion ss()
, die Daten erzeugt, die immer vier Spalten haben aber unterschiedliche Anzahl von Zeilen, mag ich in ein Array diese Ausgabe speichernMatrizen mit unterschiedlichen Abmessungen in R Eingabe
ss(M[1]) #matrix with 4 cols and 10 rows
ss(M[2]) #matrix with 4 cols and 20 rows
ss(M[3]) #matrix with 4 cols and 40 rows
Dann möchte ich diese zusammen in einem Array setzen:
J<-array(40,4,3)
for (i in 1:3){
J[,,i]<-ss(M[i])
}
Aber was passiert, ist, dass für die erste Matrix mit 10 Zeilen die Werte wiederholt werden, um das Array zu füllen, ich 0s nach dem haben will Daten, die in M existieren, sind gefüllt. Ich habe dann versucht:
J<-array(40,4,3)
for (i in 1:3){
dims<-dim(ss(M[i]))
J[1:dims[1],1:dims[2],i]<-ss(M[i])
}
Aber ich fühle, dass diese Methode nicht so effizient ist, gibt es einen besseren Weg? Gibt es irgendeine Art und Weise anwenden zu verwenden:
B<-lapply(M, ss)
aber das ist auch extrem langsam, (M hat 10000 Elemente)