为什么我的for-loop中的x引用不按预期工作?

时间:2016-11-16 01:57:48

标签: arrays r

我在代码x中进一步运行此公式时遇到问题。简而言之,我试图运行这个虽然forloop模拟这种情况发生了1000次。希望加起来TF的时间是真实的,TS是真的。我收到错误,我错过了一个TRUE / FALSE语句,并尝试重新处理函数,但仍然很困难。任何帮助或建议将不胜感激。

#Parameters

c=0.10  #colonization rate

A=10  #Area of all islands(km^2)

d=100 #Distance from host to target (A-T)

s=0.5 #magnitude of distance

d0=100  #Specific "half distance" for dispersal(km)

C1 = c*A*exp(-d/d0)  #Mainland to Target colonization

TS=1    #Target Success

TF=0    #Target Failure

Z =runif(1,0,1)

x <- C1*A

for(i in 1:1000)  

  if(x[i] <= Z) 

    print("TS") 

  if(x[i] >= Z)

    print("TF")

2 个答案:

答案 0 :(得分:1)

问题是x只是1个标量值,但你要将它编入索引,好像它有1,000个元素。

x
  

[1] 3.678794

根据您的描述,听起来您只想运行代码1,000次。这样做:

for(i in 1:1000)  {

c=0.10  #colonization rate

A=10  #Area of all islands(km^2)

d=100 #Distance from host to target (A-T)

s=0.5 #magnitude of distance

d0=100  #Specific "half distance" for dispersal(km)

C1 = c*A*exp(-d/d0)  #Mainland to Target colonization

TS=1    #Target Success

TF=0    #Target Failure

Z =runif(1,0,1)

x <- C1*A

if(x <= Z) {
    print("TS") 
  }
if(x >= Z){
  print("TF")
 }
}

答案 1 :(得分:1)

使用你编写代码的方式'x'不是一个数组而是一个值,所以你不能以你现在的方式取消引用它。