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.
InformationsquelleAutor bruce01 | 2013-08-22
Schreibe einen Kommentar