在r中随机替换向量中的数字

在r中随机替换向量中的数字,r,function,matrix,vector,R,Function,Matrix,Vector,我有一个基本的问题,因为我做了一些初步的编码,为我的论文做准备。我对R有一些经验,但还是有点新鲜。我在互联网上找遍了,还没有找到一个好的答案。希望有人能帮助我改进代码,提高效率 我试图创建一个由4个随机抽取的5x5网络组成的系列,这些网络在每个时间点都会发生轻微变化。为此,我创建了一个包含25个随机抽取(prob=.5)0和1的向量,然后从该向量创建一个5x5矩阵。该矩阵将用作每个网络的邻接矩阵。创建初始矩阵非常简单: a <- rbinom(25, 1, .5) matrix_a <

我有一个基本的问题,因为我做了一些初步的编码,为我的论文做准备。我对R有一些经验,但还是有点新鲜。我在互联网上找遍了,还没有找到一个好的答案。希望有人能帮助我改进代码,提高效率

我试图创建一个由4个随机抽取的5x5网络组成的系列,这些网络在每个时间点都会发生轻微变化。为此,我创建了一个包含25个随机抽取(prob=.5)0和1的向量,然后从该向量创建一个5x5矩阵。该矩阵将用作每个网络的邻接矩阵。创建初始矩阵非常简单:

a <- rbinom(25, 1, .5)
matrix_a <- matrix(a, ncol = 5, nrow = 5)

a您可以使用
b[spot]=1-b[spot]

b[spot]=1-b[spot]
一次更改所有采样值。完全地看起来很复杂,直到你把它说得这么简单。如果你给我一个答案,我会选择并投票表决。谢谢但愿我能想到它!非常简单。谢谢。我们都会错过一些简单的事情。很乐意帮忙。
spot <- sample(25,5)
x <- (a[spot])

y1 <- if (x[1]==0) {
  x[1]+1
} else {
  x[1]-1
}

y1

y2 <- if (x[2]==0) {
  x[2]+1
} else {
  x[2]-1
}

y2
y <- c(y1,y2,y3,y4,y5)
y
b <- a
b[spot] <- y

matrix_b <- matrix(b, ncol = 5, nrow = 5)