この問題は、すでに数日間私を混乱させました。2 つの行列があるとします。
matrix_a <- matrix(0, nrow = 3, ncol = 3,
dimnames = list(c("r1", "r2", "r3"), c("c1", "c2", "c3")))
matrix_b <- matrix(c("r1", "r2", "c1", "c2"), nrow = 2, ncol = 2)
関数で動的に変更したいmatrix_a
:
change_var <- function(x, matrix_a) {
if(any(rownames(matrix_a) == x[1]) && any(colnames(matrix_a) == x[2])) {
matrix_a[x[1], x[2]] <- 1
return (matrix_a)
}
}
apply(matrix_b, 1, change_var, matrix_a)
ただし、このコードは をまったく変更できないようmatrix_a
です。しかし、私の意図した結果matrix_a
は
c1 c2 c3
r1 1 0 0
r2 0 2 0
r3 0 0 0
を動的に変更するという目標をどのように達成できmatrix_a
ますか? ループしないソリューションを教えてください。前もって感謝します。