如何使用向量元素作为r中矩阵位置的坐标?

如何使用向量元素作为r中矩阵位置的坐标?,r,R,我想使用严格由两位数数字组成的向量元素作为特定矩阵位置的映射。例如,考虑以下内容: mat1 <- rbind(c(12,31,22,13),c(3,1,5,7)) mat <- matrix(rep( 0, len=25), nrow = 5) mat1我们可以strsplit将“mat”的第一行转换为行/列索引,并使用该索引将“mat”的对应元素分配给“mat1”的第二行 i1 <- do.call(rbind, lapply(strsplit(as.character(

我想使用严格由两位数数字组成的向量元素作为特定矩阵位置的映射。例如,考虑以下内容:

mat1 <- rbind(c(12,31,22,13),c(3,1,5,7))
mat <- matrix(rep( 0, len=25), nrow = 5)

mat1我们可以
strsplit
将“mat”的第一行转换为行/列索引,并使用该索引将“mat”的对应元素分配给“mat1”的第二行

i1 <- do.call(rbind, lapply(strsplit(as.character(mat1[1,]),""), as.numeric))
mat[i1] <- mat1[2,]
mat
#     [,1] [,2] [,3] [,4] [,5]
#[1,]    0    3    7    0    0
#[2,]    0    5    0    0    0
#[3,]    1    0    0    0    0
#[4,]    0    0    0    0    0
#[5,]    0    0    0    0    0

我们可以
strsplit
将“mat”的第一行转换为行/列索引,并使用该索引将“mat”的对应元素分配给“mat1”的第二行

i1 <- do.call(rbind, lapply(strsplit(as.character(mat1[1,]),""), as.numeric))
mat[i1] <- mat1[2,]
mat
#     [,1] [,2] [,3] [,4] [,5]
#[1,]    0    3    7    0    0
#[2,]    0    5    0    0    0
#[3,]    1    0    0    0    0
#[4,]    0    0    0    0    0
#[5,]    0    0    0    0    0

比我最初的解决方案快得多。谢谢比我最初的解决方案快得多。谢谢