【问题标题】:Error in "If" statement in R codingR编码中的“If”语句错误
【发布时间】:2015-07-04 13:59:10
【问题描述】:

这是我的代码:

#Start of my Code#
test1<-function(c,x){
high=0
low=0
samp=NULL

samp=sample(c,x)
for(i in 1:x){
if(samp[i]>1){high=high+1}
else if (samp[i]<0){low=low+1}}
c(high,low,mean(samp),var(samp),samp)
}

sim1 <-function(c,x){
replicate(nsim,{test1(c,x)})}

size=10
a<-sim1(overall,size)

listnormwor=NULL
countnormwor=0
meannormwor=NULL

for(i in 0:nsim-1){
**if (a[1+(size+4)*i]+a[2+(size+4)*i]==0)**{ 
countnormwor=countnormwor +1
for (z in 5:(size+4)){ 
listnormwor=c(listnormwor, a[z+(size+4)*i])}
meannormwor=c(meannormwor,a[3+(size+4)*i])}
}

countnormwor
mean(meannormwor)
var(listnormwor)

简单地说,我想说如果没有异常值(每 14 个数据点的第一个和第二个值表示为“0”),将其计数到一个正常的桶中并保留其值以计算方差和平均值。

但问题是,它从 a 生成所有值,最后,它提供了我想要的实际值。

例如必须满足length(listnormwor) = 10 * countnormwor

但是它给了我一个荒谬的数据量,当我使用 if 语句时,它说“缺少 TRUE/FALSE 需要的值。”

【问题讨论】:

    标签: r if-statement error-handling count


    【解决方案1】:

    我建议单步执行代码(将每一行发送到解释器)一次一行。通过在解释器中调用变量来检查变量的值。我敢打赌,这将引导您找到问题的根源。首先,在函数内部创建值xc,然后从那里开始工作。不要运行for 循环,而是创建您自己的索引变量i。同样,重点是逐行工作,并根据变量在每个点的值仔细检查您的期望。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-28
      • 1970-01-01
      相关资源
      最近更新 更多