2016-03-25 3 views
0

Я ищу, чтобы сгенерировать набор из пяти случайных чисел в R. Однако сложная часть состоит в том, что я хочу, чтобы значения находились в последовательности, которая сначала уменьшается, а затем увеличивается: первое случайное число будет больше второго, которое будет больше третьего. Четвертый будет больше третьего, а пятый будет больше четвертого. Чтобы объяснить это более четко, 1 = высокий, 2 = средний, 3 = низкий, 4 = средний, 5 = высокий; сохраняя при этом среднее значение (приблизительно) 2000 для самых больших (первых и последних) значений.Генерация случайных чисел в R

Я полагаю, что первое и пятое значения должны быть около 2000, второе и четвертое значения могут быть около 1500, но, я думаю, это может немного колебаться, а третье значение должно быть относительно ниже. SD также может меняться.

Так, например, удовлетворительная строка может быть:

2300, 1843, 987, 1300, 1900 

Привести в каком-то биологическом фоне, я пытаюсь описать сложную систему в узорах изобилия в oystercatchers на основе приливов и отливов. Из данных я знаю, что среднее значение для устриц в момент прилива составляет ~ 2000. Значения для среднего и высокого прилива, однако, не известны для этого конкретного лимана. Я полагаю, что прилив будет иметь меньшее количество, чем прилив и отлив.

+1

Что бы среднее средних и низких множеств? –

+4

Подсказки: '? Order'. Вы хотите, чтобы среднее значение было равно * 2000, и в этом случае вам нужно будет использовать что-то вроде 'x <- 2000 * x/mean (x)'? –

+0

Чтобы привести в какой-то биологический фон, я пытаюсь описать сложную систему в образцах изобилия в острицах на основе приливов. Из данных я знаю, что среднее значение для устриц в момент прилива составляет ~ 2000. Значения для среднего и высокого прилива, однако, не известны для этого конкретного лимана. Я полагаю, что прилив будет иметь меньшее количество, чем прилив и отлив. Поэтому, если можно сохранить 2000 как среднее значение, но иметь числа, случайным образом генерируемые с каким-то весом для них, это был бы идеальный сценарий. –

ответ

0

Как сказал бы Бен Bolker:

rnd.values <- rnorm(5, mean=2000, sd=1) 
rnd.values 
# [1] 1999.909 1999.656 2001.798 2000.352 2000.114 

ordered.rnd.values <- rnd.values[order(rnd.values, decreasing=TRUE)] 
ordered.rnd.values 
# [1] 2001.798 2000.352 2000.114 1999.909 1999.656 

# stupid solution to make the 3rd element the minimum 
result <- c(ordered.rnd.values[1:2], ordered.rnd.values[5], ordered.rnd.values[4:3]) 
result 
# [1] 2001.798 2000.352 1999.656 1999.909 2000.114 
+0

уменьшение = ИСТИНА было бы идеальным способом, если бы значения могли уменьшаться до 3-го целого числа, а затем возвращаться вверх для 4-го и 5-го? –

+0

Да, я пропустил это. Для этого требуется второй «порядок», но какие более высокие значения я должен выбрать (любые взаимозависимости между значениями 1 и 2 с 4 и 5? –

+0

Я полагаю, что 1-е и 5-е значения должны быть около 2000, 2-е и 4-е значения могут быть около 2000 но я думаю, что может колебаться совсем немного, а третье значение должно быть относительно ниже.СД может быть очень разнообразным: например, удовлетворительная строка может быть: 2300, 1,843, 987, 1300, 1900. –

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