r - 在 R 中,我如何在本地打乱向量的元素

标签 r sample

我在 R 中有以下向量。将它们视为数字向量。

x = c(1,2,3,4,...100)

我想根据一些输入数字“局部因子”来“局部”随机化这个向量。例如,如果局部性因子为 3,则取前 3 个元素并随机化,然后是接下来的 3 个元素,依此类推。有没有一种有效的方法来做到这一点?我知道如果我使用样本,它会弄乱整个数组。
提前致谢

最佳答案

Arun 不喜欢我的另一个答案是多么低效,所以这里有一些非常适合他的东西;)

只需调用一次 runif()order() ,并且不使用 sample()一点也不。

x <- 1:100
k <- 3
n <- length(x)

x[order(rep(seq_len(ceiling(n/k)), each=k, length.out=n) + runif(n))]
#  [1]   3   1   2   6   5   4   8   9   7  11  12  10  13  14  15  18  16  17
# [19]  20  19  21  23  22  24  27  25  26  29  28  30  33  31  32  36  34  35
# [37]  37  38  39  40  41  42  43  44  45  47  48  46  51  49  50  52  54  53
# [55]  55  57  56  58  60  59  62  63  61  66  64  65  68  67  69  71  70  72
# [73]  75  74  73  76  77  78  81  80  79  84  82  83  86  85  87  89  88  90
# [91]  93  92  91  94  96  95  97  98  99 100

关于r - 在 R 中,我如何在本地打乱向量的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17640617/

相关文章:

r - 在R中,如何选择已分组的数据框?

iphone - 如何从音频队列缓冲区中提取整数样本并将修改后的样本写回?

arrays - 来自 ArrayType Pyspark 列的随机样本

r - 在发布到 Wordpress 时,在 KnitR 中包装 R 代码块以适应 html 的宽度

r - 如何转换存储为两列(开始、结束)的日期范围以创建新的行索引并填充值

从数据框或矩阵中随机采样连续行

r - 不同组中不重复 R 的样本百分比

从两组中随机取出相等数量的元素——从一个具有相同数量元素的数据帧创建两个子数据帧

r - Shiny 的 reactiveUI 挂起,同时对同一条件变量进行多个 uiOutput 调用

r - base::plot -- 我可以检索绘制的纵横比吗?