R中的随机数生成

时间:2016-03-25 15:21:01

标签: r random

我希望在R中生成一组五个随机数。然而,棘手的部分是我希望值在首先递减的序列中,然后增加:即,第一个随机数将是大于第二个,大于第三个。第四个将大于第三个,第五个将大于第四个。为了更清楚地解释这一点,1 =高,2 =中,3 =低,4 =中,5 =高;同时仍保持最大(第一个和最后一个)值的(大约)2000的平均值。

我认为第一个和第五个值应该在2000左右,第二个和第四个值可以在1500左右,但我想可以波动很大,第三个值应该相对较低。 SD也可以变化。

例如,一个令人满意的字符串可能是:

2300, 1843, 987, 1300, 1900

为了引入一些生物学背景,我试图用基于潮汐的蛎鹬的丰富模式描述一个复杂的系统。我从数据中得知,在潮汐低的时候,蛎鹬的平均值是~2000。然而,这个特殊的河口并不知道中高潮的价值。我认为涨潮的数字会低于中低潮。

1 个答案:

答案 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