用r创建一个伪随机列表

鉴于我有4个不同的值

intensities <- c(0.1,-0.1,0.05,-0.05)

我的目标是随机抽取每个值5次,但正值和负值应交替,例如

resulList =(0.1,-0.05,0.05,-0.05,0.1,-0.1,…)

有人知道在R中这样做的优雅方式吗?

最佳答案 也许这样的事情

# seed
set.seed(123)

plus <- rep(intensities[intensities >= 0], each = 5)
minus <- rep(intensities[intensities < 0], each = 5)
out <- numeric(length(plus) + length(minus))
out[seq(1, length(out), 2)] <- sample(plus)
out[seq(2, length(out), 2)] <- sample(minus)
out
# [1]  0.10 -0.05  0.05 -0.10  0.10 -0.05  0.05 -0.05  0.05 -0.10  0.10 -0.05  0.05 -0.05  0.05 -0.10
# [17]  0.10 -0.10  0.10 -0.10
点赞