r - 使用索引递增到矩阵

标签 r matrix indexing

有没有一种方法可以使用该矩阵的索引来增加矩阵的特定行和列,并且如果索引重复则同时执行两次。例如,使用以下代码:


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/

相关文章:

c++ - 使用 HUGE 二进制矩阵的最有效方法?

sql - Informix DB 上索引(indices?)的使用

r - 加速计算

arrays - 在Matlab中直接获取数组/单元格的元素

c - C中的结构矩阵

indexing - 覆盖索引或单个索引

python - 当切片索引超出范围时如何引发 IndexError?

javascript - 如何在可滚动数据表中获取鼠标单击位置?

r - 附加到大型 data.frame 并达到内存限制

r - tidyr::pivot_wider() 重新排序按 `name_from` 分组的列名称