Ich schrieb eine Funktion, die Operationen auf einer Liste ausführt. Jetzt versuche ich, die Ergebnisse in eine data.frame
zu binden, aber nichts scheint zu funktionieren. Kann mir jemand erklären, wie ich das beheben kann, aber noch wichtiger, warum ich dieses Problem habe?Binden von Zeilen von einer Funktion in einen Datenrahmen
ret<-lapply(1:3,function(x){getVals(x,x+1,x+2)})
getVals<-function(x,y,z){
rbind(x,y,z)
}
as.data.frame(ret)
as.matrix(ret,ncol=3)
gewünschte Ausgabe ist:
1,2,3
2,3,4
3,4,5
Versuchen 'do.call (cbind , ret) 'und das sollte funktionieren. Und Sie können das mit 'as.data.frame' einbinden, um einen Datenrahmen anstelle einer von Ihnen konstruierten Matrix zu erhalten. – Gopala
Das war was ich brauchte (obwohl es tatsächlich cbind war). Vielen Dank! – Rilcon42
Kannst du nicht 'c' anstelle von' rbind' in 'getVals' verwenden? Das würde die Dinge erleichtern. Oder Sie können 'sapply' anstelle von' lapply' verwenden und eine Matrix als Ergebnis erhalten: 'sapply (1: 3, Funktion (x) getVals (x, x + 1, x + 2))' – lebatsnok