选择并替换R中矩阵的元素

麦克风

极端的初学者,在R中随机执行操作的整个概念是我尚未掌握的。

下面的代码是我尝试创建一个矩阵的起点,该矩阵由字母a-e(带有替换等)的随机分布组成,这是我的向量“ bob.a”。然后,我需要做的是从此矩阵中选择一个随机元素,并将其替换为“ bob.a”的另一个示例(因此,另一个随机字母,即使该字母以相同的结尾)也是如此。理想情况下,我将通过大约100次循环运行此操作,直到随机替换每个元素为止(尽管在确保随机替换元素100次的宏伟方案中,替换每个元素并不重要)。

我的代码是:

##Create Bob Vector
bob.a<-factor(c(letters[1:5]))
##Check Bob Vector
bob.a


#Matrix creation (Random)
bob.matrix<- matrix(sample(bob.a,25,replace=TRUE),
                      nrow=5,
                      ncol=5,
                      byrow = TRUE)
##Check bobmatrix.v2
bob.matrix


##Random removal (&replace?)
bob.matrix[2,3] <- sample(bob.a,1,replace=TRUE)

sample(bob.matrix,1)

bob.matrix[,] <- sample(bob.a,1,replace=TRUE)

sample(bob.matrix,1) <- sample(bob.a,1,replace=TRUE)

(我正在做所有非常基本的事情,并检查了每一步,因为我非常需要了解我正在做的事情的核心概念!)

虽然我确定答案将涉及样本甚至索引,但随机地这样做现在对我完全不知所措。

我试图做一个简单的替换,只是检查我是否知道,但是那甚至没有用,因为生产线

bobmatrix.v2[2,3] <- sample(bob.a,1,replace=TRUE)

为文本插入一个数字值(例如,将位置[2,3]替换为1而不是a),这完全让我失望了。最后两行代码是我尝试不同的事情,这些事情都不符合我的想法。

在随机替换中,我认为它可以使用索引编制或抽样,但是我对索引编制的知识很低。而且,我在网上看到的内容似乎通常基于替换某些元素(例如用其他东西替换所有“ a”)或对其进行某种变体,而不是在矩阵中选择单个随机元素。采样方式相同(但能够替换该元素)。

最终,我需要3件事(我认为很简单):

  1. 在矩阵中选择一个随机元素/位置
  2. 从向量“ sample(bob.a,1)中选择一个随机字母
  3. 将1替换为2(用向量中的随机字母替换随机元素/位置。)

任何帮助将不胜感激,尽管它似乎相对毫无意义,但它是某些编程的核心概念,我必须在整个夏天进行,而我确实非常希望能够做并了解正在发生的事情以确保实际上,我可以执行我承诺的项目。

另外,我还没有研究循环部分,因此任何指导都将是很棒的。

非常感谢

尼古拉

首先:您想要一个character矩阵,所以不要使用factors。只需定义:

bob.a<-letters[1:5]

或将其转换(bob.a<-as.character(bob.a)如果已经存在)。bob.matrix创建后就可以了。只是不要使用byrow=TRUE:这是它的目的,因为该元素是随机的?如果要替换随机元素,请bob.matrix尝试:

bob.matrix[sample(length(bob.matrix),1)]<-sample(bob.a,1)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章