r - 如何在不在 R 中创建循环的情况下更改每行矩阵的列元素
问题描述
我有一个矩阵,我想根据向量将列元素从 0 更改为 1,反之亦然。第一行的第一列应该切换,第二行的第三列也应该翻转。例如
mat <- matrix(c(0,1,0,0,1,0),2,3)
ind <- c(1,3)
mat1 <- matrix(c(1,1,0,0,1,1),2,3)
我想从垫子上得到垫子,
谢谢
解决方案
只需使用row/column
索引
mat[cbind(seq_len(nrow(mat)), ind)] <- 1
或者如果我们不想修改原始对象,请使用replace
mat1 <- replace(mat, cbind(seq_len(nrow(mat)), ind), 1)
推荐阅读
- python - 在不上采样 1 分钟的情况下合并 1 分钟、5 分钟和每日 OHLC 数据帧?
- javascript - 如何覆盖从javascript中的模块返回的类中的函数
- java - 如何在 IDEA 中运行单个 java 文件?
- python - 如何从 openai-gym 安装 Atari 环境?
- git - 无法将新存储库推送到 github
- r - 将 emmeans 与 brms 一起使用
- javascript - 如何在谷歌地图上获得固定标记和可拖动路线?
- eclipse - 使用 paho_c_pub 时“rc failure”是什么意思?
- swiftui - 换行时无法对齐 Button 中的左侧文本
- java - 如何解决'“eclipse classNotFoundException”