根据@agstudy
编辑此帖子以简化我正在尝试使用随机均匀分布来开发模拟聚合物的模型。
模型有2个状态
状态1(如果在状态2中状态1的概率是.003): 增长概率,A = .01 收缩概率,B = .0025
状态2(如果在状态1中状态2的概率是.0003): 增长概率,A = .01 收缩概率,E = .05
模拟从状态1开始
在状态1中,从data.frame1中采样随机数,如果#< .0025在data.frame2中输入-1,如果#< .01在data.frame2中输入+1,如果data.frame2中都没有输入0。继续直到达到#< .0003(进入状态1的概率)
如果#< .0003被采样,输入-1到data.frame2,并切换到状态2.继续采样随机数,而在状态2,如果#< .003输入+1到data.frame2并切换到状态1并按上述方式继续。如果在状态2中#> = .003,并且如果#< .05输入-1到data.frame2,否则输入0在data.frame2
我希望这可以解决问题@agstudy,但有可能不会......对不起,如果是这样的话。
这是一个在excel中生成的小集应该如何生成的示例
第一列将来自data.frame1,输入列将是data.frame2,i包含州和长度列以供说明。
rnumbers state input length
0 1 0 0 # initialized state
0.009413895 1 1 1
0.052959306 1 1 2
0.002453354 1 -1 1
0.000290324 2 -1 0
0.093312954 2 0 0
0.077210941 2 0 0
0.04924944 2 -1 -1
0.010590107 2 -1 -2
0.03308292 2 -1 -3
0.037239807 2 -1 -4
0.007889393 2 -1 -5
0.026476751 2 -1 -6
0.000454509 1 1 -5
0.009820683 1 1 -4
0.019836999 1 1 -3
0.009380381 1 1 -2
0.083149383 1 1 -1
0.022212547 1 1 0
0.051917035 1 1 1
0.05032031 1 1 2
0.03956718 1 1 3
0.032664445 1 1 4
0.004352291 1 1 5
0.08902418 1 1 6
0.095643962 1 1 7
答案 0 :(得分:0)
我会写这样的东西:
step_generator <- function(rnum)
ifelse(rnum<C,
ifelse(rnum>=D,-5,ifelse(rnum<B,-1,ifelse(rnum<A,1,0))),
ifelse(rnum<B,-1,ifelse(rnum<A,1,0)))