如何在R中翻转N%的二进制矩阵?

时间:2016-01-03 16:34:05

标签: r

我有二进制矩阵A,我想随机将其中20%的零条目更改为1。 有人可以帮我这个吗?

3 个答案:

答案 0 :(得分:2)

试试这个:

m <- matrix(seq(1:100), nrow = 20, ncol = 5)
m[sample(length(m), round(length(m) * 0.2))] <- 0

答案 1 :(得分:2)

您可以尝试以下操作:

测试数据

$ ./gradlew build
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:findMainClass
:jar
:bootRepackage
:assemble
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:test UP-TO-DATE
:check UP-TO-DATE
:build

BUILD SUCCESSFUL

Total time: 11.673 secs

实际代码

set.seed(42)
dat <- sample(0:1, 40, replace = TRUE)
mat <- matrix(dat, nrow = 5) # 5x8 sample Matrix

答案 2 :(得分:2)

我们可以尝试

i1 <- m1==0
m1[sample(which(i1), round(sum(i1)*0.20))] <- 1

数据

set.seed(24)
m1 <- matrix(sample(0:1, 5*4, replace=TRUE), ncol=5)