簡體   English   中英

在R中使用for循環將行添加到數據表

[英]adding rows to data table using for loop in R

我正在使用一些基本的R函數,並嘗試創建一個包含數字1:20的余數和商數的表。首先,我創建了此函數:

Find_Remains = function(number, divisor){
              Remainder = number%%divisor
              Quotient = number%/%divisor
              a = c(number, divisor, Remainder, Quotient)
              return(a)
}

我添加一個空白表

final.data.frame = data.frame(matrix(NA, nrow = 1, ncol = 4))

然后我創建了這個for循環

for(i in c(1:20)){
    b[i] = Find_Remains(i,5)
    final.data.frame = rbind(b[i])
}

我得到的錯誤是:

number of items to replace is not a multiple of replacement length

任何幫助,將不勝感激。 謝謝

初始化final.data.frame榮譽(盡管我認為最好以20行初始化)。 完成您不需要使用rbind ,您只需在每次循環運行中替換數據幀的每一行即可。 這就是您需要的-

Find_Remains = function(number, divisor) {
              Remainder = number%%divisor
              Quotient = number%/%divisor
              a = c(number, divisor, Remainder, Quotient)
              return(a)
}

final.data.frame = data.frame(matrix(NA, nrow = 20, ncol = 4))

for(i in 1:20) {
  final.data.frame[i, ] = Find_Remains(i,5)
}

> final.data.frame
   X1 X2 X3 X4
1   1  5  1  0
2   2  5  2  0
3   3  5  3  0
4   4  5  4  0
5   5  5  0  1
6   6  5  1  1
7   7  5  2  1
8   8  5  3  1
9   9  5  4  1
10 10  5  0  2
11 11  5  1  2
12 12  5  2  2
13 13  5  3  2
14 14  5  4  2
15 15  5  0  3
16 16  5  1  3
17 17  5  2  3
18 18  5  3  3
19 19  5  4  3
20 20  5  0  4

暫無
暫無

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

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