我希望在R中生成一组五个随机数。然而,棘手的部分是我希望值在首先递减的序列中,然后增加:即,第一个随机数将是大于第二个,大于第三个。第四个将大于第三个,第五个将大于第四个。为了更清楚地解释这一点,1 =高,2 =中,3 =低,4 =中,5 =高;同时仍保持最大(第一个和最后一个)值的(大约)2000的平均值。
我认为第一个和第五个值应该在2000左右,第二个和第四个值可以在1500左右,但我想可以波动很大,第三个值应该相对较低。 SD也可以变化。
例如,一个令人满意的字符串可能是:
2300, 1843, 987, 1300, 1900
为了引入一些生物学背景,我试图用基于潮汐的蛎鹬的丰富模式描述一个复杂的系统。我从数据中得知,在潮汐低的时候,蛎鹬的平均值是~2000。然而,这个特殊的河口并不知道中高潮的价值。我认为涨潮的数字会低于中低潮。
答案 0 :(得分:0)
正如Ben 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