【发布时间】:2014-01-19 02:59:12
【问题描述】:
我一直在尝试编写一个算法来生成一些观察结果,但我遇到了一个我不知道如何解决的错误。你可以在下面找到我的代码,如果你需要检查我的算法应该做什么,请咨询link。
n = 10
u1 = runif(n)
u2 = runif(n)
alpha = 2
beta = 2
v1 = u1^(1/alpha)
v2 = u2^(1/beta)
w = v1+v2
x = rep(0,n)
for(i in 1:n){ if(w[i] <= 1){x[i] = v1/w}}
Warning messages:
1: In x[i] = v1/w :
number of items to replace is not a multiple of replacement length
您能告诉我如何在不改变算法性质的情况下解决这个问题吗?提前谢谢你。
PS 新年快乐!
【问题讨论】:
-
可能是
for(i in 1:n){ if(w[i]<=1) { x[i] = v1[i] / w[i] } }?然后我会将x初始化为NAs -
@achingfingers 这是你可以从标签中看到的 R 代码。
-
同意 Jake 的索引。您可以避免循环: x[w
-
@JakeBurkhead 现在没有这样的错误,但还有些不对劲。不过,这可能是在统计方面。
-
@JakeBurkhead 想通了!写 x
标签: r algorithm statistics simulation