Rückkehr einen Daten-frame
Ich bin mit dem folgenden code zu extrahieren, die Anzahl der abgeschlossenen Fälle von Dateien:
complete <- function(directory, id=1:332) {
sapply(id, fn, directory)}
fn <- function(id, directory) {
zero <- sprintf("%03d", id)
name <- paste(directory,"/",zero,".csv",sep="")
frame <- read.csv(name)
ok <- complete.cases(frame)
return(c("nobs"=sum(ok),"id"=id)) }
Dann, z.B.:
complete("specdata",1:12)
Dieser code gibt:
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
nobs 117 1041 243 474 402 228 442 192 275 148 443 96
id 1 2 3 4 5 6 7 8 9 10 11 12
Allerdings würde ich gerne wieder einen Daten-frame von der Art:
Ich bin nicht sicher, was ich falsch mache. Danke!
- Wenn Sie
browser()
innerhalb Ihrer Funktion aufrufen, werden Sie in der Lage zu erkunden das Innenleben von (Ihrer) Funktion in Echtzeit. Siehe debugging-Themen hier SO. - Dies ist eine eklatante Verletzung der Coursera-Politik
Du musst angemeldet sein, um einen Kommentar abzugeben.
sapply
ist wieder einmatrix
hier. Sie können die Form und Art, die Sie wollen mit:Oder diese in der
complete
- Funktion, um den Anruf zusapply
.t
transponiert diematrix
Zeilen in Spalten undas.data.frame
zwingt es in eine solche.Dein code ist OK. Um Ihre gewünschte Ergebnis zu verwenden
statt
sapply(id, fun, directory)
.Ihr code sollte wie folgt Aussehen;