【发布时间】:2014-07-07 14:15:47
【问题描述】:
我想做的是:
-
生成一个介于 0 和 1 之间的随机数
rand_number <- runif(1,0,1) -
根据生成的随机数,我将值 1、2、3、4 或 5 归因于变量 bet_choice
bet_choice <- ifelse(rand_number<0.1,1, ifelse(rand_number>0.1 & rand_number<=0.4,2, ifelse(rand_number>0.4 & rand_number<=0.7,3, ifelse(rand_number>0.7 & rand_number<=0.9,4,5))))
我重复这个模拟 1000 次,我觉得使用 ifelse 不是实现这个目标的最佳方式。有没有办法避免ifelse循环,提高这部分代码的性能?
如果有人对完整代码感兴趣,我有我想要做的事情的完整代码 (https://quant.stackexchange.com/questions/12868/kelly-capital-growth-investment-strategy-example-in-r)。
【问题讨论】:
-
我想
cut可能是你的朋友。 -
...这当然假设您切换到使用
runif(1000,0,1)预先创建所有随机数,而不是一次一个,这当然会非常慢。
标签: r performance loops