有没有一种方法可以使用该矩阵的索引来增加矩阵的特定行和列,并且如果索引重复则同时执行两次。例如,使用以下代码:
rows <- c(1, 2, 3, 4, 1)
cols <- c(4, 2, 5, 1, 4)
freq <- matrix(0, 5, 5)
freq[cbind(rows, cols)] <- freq[cbind(rows, cols)] + 1
freq
我在特定的行和列上得到了一些,但是由于 (1, 4) 组合重复了两次,我想找到一种方法来向它添加另一个 1 并使用 R 以计算有效的方式使它成为两个像上面那样对矩阵进行索引。
提前致谢!
最佳答案
如果你不介意使用igraph
包,你可以通过get.adjacency
管理它
library(igraph)
get.adjacency(
graph_from_data_frame(data.frame(rows, cols), vertices = data.frame(1:nrow(freq))),
sparse = FALSE
)
给出
1 2 3 4 5
1 0 0 0 2 0
2 0 1 0 0 0
3 0 0 0 0 1
4 1 0 0 0 0
5 0 0 0 0 0
关于r - 使用索引递增到矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65442886/