使用邻接向量(特别是使用行名和列名)为R矩阵或数据帧分配值

时间:2018-07-24 19:59:32

标签: r dataframe sparse-matrix linear-algebra adjacency-matrix

我看到了其他一些关于根据索引的向量或元组获取矩阵值的问题,但是没有关于更新这些值的问题。我想要这样:

mat <- matrix(1:9, nrow = 3)
rownames(mat) <- c("a","b","c")
colnames(mat) <- c("d","e","f")
rVec <- c("a","a","b")
cVec <- c("d","e","d")
nVec <- c(12, 13, 14)
mat <- func(mat, rVec, cVec, nVec)

要使它们为真:

mat["a", "d"] == 12
mat["a", "e"] == 13
mat["b", "d"] == 14

在我看来,您应该只可以使用mat[rVec, cVec] <- nVec,就像numpy(python)这样的默认功能一样。

我不必使用行名和列名,但是比仅使用行号和列号的索引更受欢迎。我已经研究了sparseMatrix,因为这似乎很接近我需要的东西,但是我什么也没找到。我尝试使用mapply,但它无法正确更新变量。我尝试使用Vectorize,但发现需要使用正在创建的程序包中破坏的全局变量。

0 个答案:

没有答案