Rückgabewert aus der Funktion bei der Iteration in einer Schleife R
Blieb ich Weg von Funktionen, die in R, aber beschlossen, es ist besser der Praxis. Jetzt habe ich dieses Problem. Ich Schreibe meine Funktion:
myFunction<-function(tab){ #takes tabular input
inP<-c()
for (x in 1:dim(tab)[1]){ #iterate over rows
rname<-rownames(tab)[x] #rownames as output
if(rname<5) inP<-c(inP,rname) #trivial work
}
return(inP) #return the vector made above
}
tablist<-as.list(paste("tab",1:4,sep=""))
for (x in 1:length(tablist)){
tablist[[x]]<-table(c(1:10),c(1:10))
}
inPvec<-c() #predefine vector to concatenate results into
for (x in 1:length(tablist)){ #tabs holds multiple tables as a list
myFunction(tablist[[x]]) #run myFunction for each table held in tabs
inPvec<-c(inPvec,inP) #concatenate results from each iteration
}
inP
#NULL
myFunction(tablist[[1]])
#[1] "1" "2" "3" "4" "10"
Bearbeitet als praktikable Beispiel: Entschuldigung für Faulheit.
Wenn du für die Schleife im Beispiel inP gibt NULL zurück, wie inPvec. Bu Ausführung von einzelnen Tabellen in der Funktion den richtigen Wert zurück. Allerdings inP ist NULL, beim Aufruf, so dass ich denke, das ist, wo mein Problem ist.
Ich soll alles aus der Schleife iteriert die Funktion zurückgegeben werden, um einen einzigen Vektor z.B.:
inPVec
#[1] "1" "2" "3" "4" "10" "1" "2" "3" "4" "10" "1" "2" "3" "4" "10" etc
Jede Hilfe sehr geschätzt.
- Bitte helfen Sie uns, helfen Sie indem Sie uns ein reproduzierbares Beispiel (d.h. code und Beispiel-Daten), finden Sie unter stackoverflow.com/questions/5963269/... für details.
- Sorry, jetzt editiert für die Ausführung als standalone-Beispiel.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist, dass Sie nicht bekommen, das Ergebnis Ihrer Funktion:
und korrigieren Sie Ihre Funktion auch:
R
verwendet für die Verkettung. Froh stolperte auf diese Antwort.