我正在尝试从矩阵(数据)中选择特定单元格并将值更改为 1
我得到了这 2 个向量
data <- matrix(0,300,300)
X <- c(1,5,87,987,67)
Y <- c(5,7,12,456,99)
x1 和 y1(即 1,5)表示我要在矩阵中选择的位置
我不想选择(x1,y2)
我已经做了我想做的事:
for (i in 1:length(x)){
data[x[i],y[i]]<-1
}
我很确定我可以用 apply 做同样的事情,这样可以更快地工作
感谢您的帮助
最佳答案
cbind
X
和 Y
并赋值
data[cbind(X, Y)] <- 1
# [,1] [,2] [,3] [,4] [,5]
#[1,] 0 1 0 0 0
#[2,] 0 0 0 0 0
#[3,] 0 0 1 0 0
#[4,] 0 0 0 1 0
#[5,] 0 0 0 0 0
数据
使用较小的数据集
X <- c(1,3,4)
Y <- c(2,3,4)
data <- matrix(0, ncol = 5, nrow = 5)
data
# [,1] [,2] [,3] [,4] [,5]
#[1,] 0 0 0 0 0
#[2,] 0 0 0 0 0
#[3,] 0 0 0 0 0
#[4,] 0 0 0 0 0
#[5,] 0 0 0 0 0
关于使用 apply 选择 R 细胞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55473940/