我有一個空矩陣和一定數量的列,我試圖逐行填充for循環的輸出向量。然而,其中一些輸出的長度與矩陣的列數不同,只是想用NAs填充這些「空白空間」。將數據按行添加到空矩陣中並處理丟失的數據
例如:
matrix.names <- c("x1", "x2", "x3", "x4", "y1", "y2", "y3", "y4", "z1", "z2", "z3", "z4")
my.matrix <- matrix(ncol = length(matrix.names))
colnames(my.matrix) <- matrix.names
這將是從一個迭代的輸出:
x <- c(1,2)
y <- c(4,2,1,5)
z <- c(1)
在哪裏我想它在矩陣是這樣的:
x1 x2 x3 x4 y1 y2 y3 y4 z1 z2 z3 z4
[1,] 1 2 NA NA 4 2 1 5 1 NA NA NA
輸出從下一次迭代開始,例如:
x <- c(1,1,1,1)
y <- c(0,4)
z <- c(4,1,3)
並添加爲矩陣中的新行:
x1 x2 x3 x4 y1 y2 y3 y4 z1 z2 z3 z4
[1,] 1 2 NA NA 4 2 1 5 1 NA NA NA
[2,] 1 1 1 1 0 4 NA NA 4 1 3 NA
這不是一個真正的關心,如果我有一個0,它只是在沒有數據。另外,數據以這樣的方式保存,即首先在行中列出任何內容,然後在空槽中列出NAs。換句話說,我不擔心NA是否會首先出現。
此外,這樣的事情更好地處理數據框而不是矩陣?
謝謝@ joel.wilson爲編輯 –
我下面貼的解決方案,請檢查是否正常工作 – akrun