2013-11-30 4 views
0

Редактирование этого поста для упрощения в соответствии с @agstudyПрограммы просто моделирование в R

Я пытаюсь разработать модель, которая имитирует полимер, используя случайное равномерное распределение.

Модель имеет 2 состояния

состояние 1 (вероятность состояния 1, если в состоянии 2 является 0,003): вероятность роста, А = 0,01 вероятность термоусадочной, В = 0,0025

Государственный 2 (вероятность состояния 2 в состояние, если 1 0,0003): вероятность роста, А = 0,01 вероятность термоусадочной, Е = .05

Моделирование начинается в штате 1

Пока в состоянии 1 выберите случайные числа из data.frame1, если # < .0025 вход -1 в data.frame2, если # < .01 вход +1 в data.frame2, если ни вход 0 в data.frame2. продолжайте до достижения # < .0003 (вероятность входа в состояние 1)

Если выбран образец # < .0003, введите -1 в data.frame2 и переключитесь в состояние 2. продолжите выборку случайных чисел, а в состоянии 2, если # < .003 введите +1 в data.frame2 и переключитесь в состояние 1 и действуйте, как указано выше. Если в состоянии 2: #> = .003, а если # < .05 введите -1 в data.frame2, иначе введите 0 в data.frame2

Надеюсь, что это очистит вещи вверх, а есть шанс это может не ... извините, если это так.

вот пример генерируется в первенствуете как небольшой набор должен выглядеть

1-й столбец будет из data.frame1 и столбца ввода будет data.frame2, я включен состоянием и длиной колонки для пояснительных целей ,

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

Что делать, если 'rnum [я] == C'? –

+0

good point, treat rnum [i]> C как rnum [i]> = C – user2813055

+0

Вы заметили, что, поскольку 'C

ответ

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))) 
+0

Как этот бит кода учитывает предыдущие строки? Когда rnum = D, можете ли вы объяснить, где ваш код это делает? – user2813055

+0

@ user2813055 Я думаю, что что-то пропустил. Вы должны представить воспроизводимый пример с ожидаемым выходом. пожалуйста, прочтите [это] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) – agstudy

 Смежные вопросы

  • Нет связанных вопросов^_^