簡體   English   中英

如何將for循環輸出保存為R中的data.frame?

[英]How to save the for loop output as data.frame in R?

我想知道如何將for loop的輸出保存為data.frame 讓我們說使用mtcars數據集我有以下for loop腳本:

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

但如果我save其作為dataframe saveoutput文件中,我將得到以下內容:

   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

我知道簡單的索引output <- mtcars[-(1:30), ] ,但這不是我現實生活情況的解決方案(更復雜)。 我真的需要循環來做我想要的。

這是一個與您的代碼最相似的解決方案。
這些點使用初始化(索引...[NULL, ] )和函數rbind()

output <- mtcars[NULL,]
for (i in seq_len(nrow(mtcars))) { 
  if (i  <= 30) {
        next
  }
  # ...
  output <- rbind(output, mtcars[i, ]) 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM