问题:给定一个布尔矩阵 X∈Rm×n X ∈ R m × n ,要求随机抽取0.05%的元素,将0换成1,将1换成0。
可以用sample来选随机数。生成线性索引向量index: X X 看成一个1×mn1×mn维向量, index∈R1×mn i n d e x ∈ R 1 × m n 。
index <- c(1:m*n) index <- sample(index, np, replace = FALSE) X[index[which(X[index] == 1)]] <- 0.1 X[index[which(X[index] == 0)]] <- 1 X[index[which(X[index] == 0.1)]] <- 0