r - 用 r 创建一个伪随机列表
问题描述
鉴于我有 4 个不同的值
intensities <- c(0.1,-0.1,0.05,-0.05)
我的目标是对每个值随机采样 5 次,但正值和负值应该交替,例如
结果列表 = (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
推荐阅读
- python - ModuleNotFoundError:没有名为“_sysconfigdata_m_darwin_darwin”的模块
- perforce - 在与取消搁置存在冲突后,perforce 是否会安排解决?
- r - 在R中对具有指定逻辑的列进行分组
- reactjs - 尝试使用 react-redux 调度操作时,“PropsWithChildren”类型上不存在 Prop
- python - 用户输入表单字段后如何运行python函数
- python - 从数组中查找 3 个连续缺失的整数
- unit-testing - Vue、Mocha 和 webpack 块配置?
- flutter - 如何根据flutter中的if条件动态显示两个按钮
- tensorflow - 使用 Tensorflow 的 Dask - Joblib?
- arrays - Ruby:继续循环遍历一个固定长度的数组,每次迭代的每个元素都加 1