一个在零矩阵中的数字 - R

3
我是新手程序员,想知道如何创建全为零的矩阵,并在其中随机插入一个数字1。我找过帮助,但只找到了一些生成全为零和一的随机矩阵的代码,而我只想在矩阵中的某个随机位置出现数字“1”。
我在这里举了一个例子: http://www.r-bloggers.com/making-matrices-with-zeros-and-ones/
set.seed(1)
mm <- matrix(0, 10, 5)
apply(mm, c(1, 2), function(x) sample(c(0, 1), 1))

#       [,1] [,2] [,3] [,4] [,5]
#  [1,]    0    0    1    0    1
#  [2,]    0    0    0    1    1
#  [3,]    1    1    1    0    1
#  [4,]    1    0    0    0    1
#  [5,]    0    1    0    1    1
#  [6,]    1    0    0    1    1
#  [7,]    1    1    0    1    0
#  [8,]    1    1    0    0    0
#  [9,]    1    0    1    1    1
# [10,]    0    1    0    0    1
1个回答

12

创建全零矩阵很容易

X <- matrix(0, 10, 10)

现在注意,在R中,矩阵被存储为一个带有额外维度的向量。

> str(X)
 num [1:10, 1:10] 0 0 0 0 0 0 0 0 0 0 ...

所以如果你想在随机位置插入1,只需在长度为N*M的向量中选择一个随机位置并将其替换为该值。

X[sample(10*10, 1)] <- 1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接