R 如何引用条件表达式中向量的元素?

R 如何引用条件表达式中向量的元素?,r,R,我随机从向量中选择一个特定元素,然后测试它是否匹配多个数字: counter=0 variable1=0 a=c(rep(0,10),11,12,13,14,15,16) for (i in 1:1000) { num=sample(1:16) if(a[num]==11){ variable_1=11 counter=counter+1 } } 当我运行这段代码时,我得到以下警告:在if(a[num]==11){…: 条件的长度大

我随机从向量中选择一个特定元素,然后测试它是否匹配多个数字:

counter=0
 variable1=0
    a=c(rep(0,10),11,12,13,14,15,16)
    for (i in 1:1000) {
    num=sample(1:16)
    if(a[num]==11){
      variable_1=11
counter=counter+1
    }
    }
当我运行这段代码时,我得到以下警告:在if(a[num]==11){…: 条件的长度大于1,并且只使用第一个元素


这里出了什么问题?

看起来您想用替换品对a进行1000次采样,并计算11次。一种简单的方法是:

a=c(rep(0,10),11,12,13,14,15,16)
allnums <- sample(a, 1000, replace = TRUE)
tot11 <- sum(allnums == 11)
a=c(代表(0,10),11,12,13,14,15,16)

allnums使用
replace
而不是
if
。另外,请共享您正在使用的所有OBJ/变量的几行。我运行了?replace,它似乎改变了向量中的值。它就是这样做的吗?至于代码,cc_sample是一个包含16个元素的向量,num是一个随机数1-16,而在黑板上是一个红色的整数在整个程序中定义,如果您创建一个小的可复制示例以及预期输出,那么会更容易提供帮助。请阅读。感谢您的反馈,@RonakShah。我已经用我认为最小可复制示例编辑了这篇文章。您确定这行是正确的吗?
a=c(rep(0,10),11,12,13,14,15,16)