Wie Sie die for-Schleife die Ausgabe als Daten.frame in R?

Ich würde gerne wissen, wie ich speichern kann die Ausgabe eines for loop als data.frame?
lassen Sie uns sagen, mit der mtcars dataset ich habe Folgendes for loop Skript:

for (i in seq_len(nrow(mtcars))) { 
  if (i  <= 30) {

    next
  }

  print(mtcars[i,])  
}

              mpg cyl disp  hp drat   wt qsec vs am gear carb
Maserati Bora  15   8  301 335 3.54 3.57 14.6  0  1    5    8
            mpg cyl disp  hp drat   wt qsec vs am gear carb
Volvo 142E 21.4   4  121 109 4.11 2.78 18.6  1  1    4    2

aber wenn werde ich save es in output Datei als dataframe ich bekomme die folgende:

   output <- as.data.frame(c())
    for (i in seq_len(nrow(mtcars))) { 
      if (i  <= 30) {

        next
      }

      output<- c(output,mtcars[i,])  
    }


   ### then the output is 

   > output
    $mpg
    [1] 15

    $cyl
    [1] 8

    $disp
    [1] 301

    $hp
    [1] 335

    $drat
    [1] 3.54

    $wt
    [1] 3.57

    $qsec
    [1] 14.6

    $vs
    [1] 0

    $am
    [1] 1

    $gear
    [1] 5

    $carb
    [1] 8

    $mpg
    [1] 21.4

    $cyl
    [1] 4

    $disp
    [1] 121

    $hp
    [1] 109

    $drat
    [1] 4.11

    $wt
    [1] 2.78

    $qsec
    [1] 18.6

    $vs
    [1] 1

    $am
    [1] 1

    $gear
    [1] 4

    $carb
    [1] 2

Ich weiß, die einfache Indizierung output <- mtcars[-(1:30), ], aber dies ist nicht eine Lösung für mein real-life situation (was ist komplexer). Ich brauche wirklich die Schleife zu tun, was ich will.

  • Durch die Verwendung von c - () Sie sind das verketten einer Liste von Daten.frames. Mittels cbind() statt c() Sie würden bekommen, was Sie wollen
  • würden Sie bitte Ihren code schreiben, für mich zu klären, was genau du meinst und wo es brauchen? tnx
  • tnx für den Kommentar, aber es ist nicht hilfreich ! Ich wusste, dass dies der Punkt ist, wie kann es in der Schleife, und dies ist nur als Beispiel zu buddy! 🙂
  • Ausgang <- wie.Daten.Rahmen(c()) for (i in seq_len(nrow(mtcars))) { if (i <= 30) { next } - Ausgabe<- cbind(output,mtcars[i,]) }
  • Gibt es einen Fehler (hatte ich nicht getestet), aber verwenden Sie rbind() anstelle von cbind() und es funktioniert
InformationsquelleAutor Daniel | 2017-02-23
Schreibe einen Kommentar