【问题标题】:Randomly extract a number of consecutive items from a sequence in R从R中的序列中随机提取多个连续项目
【发布时间】:2015-10-05 09:35:41
【问题描述】:
Frag <- seq(1: 30000)
K <- 9
P <- sample(1:K,1)
sys.sample <- Frag[seq(P, length(Frag), K)]

现在 sys.sample 包含 3333 个数字。如何在 R 中随机抽取 16 个连续项目?

【问题讨论】:

    标签: r sequence


    【解决方案1】:

    如果一个向量vn元素,并且你想随机抽取p连续元素(p&lt;=n),你可以这样做:

    possibleIndex = seq(length(v) - p + 1)
    firstIndex = sample(possibleIndex, 1)
    
    v[firstIndex:(firstIndex + p -1)]
    

    【讨论】:

    • 感谢您的回答。但是当我重新运行代码时,我得到了不同数量的元素。怎么会?
    • 因为sample 每次都需要不同的初始索引:)!你可以加set.seed()来处理。
    【解决方案2】:

    将@ColonelBeauvel 的答案放入函数中会如下所示

    extractRandWindow <- function(x, p){
        firstIndex = sample(seq(length(x) - p + 1), 1)
        x[firstIndex:(firstIndex + p -1)]
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-17
      • 1970-01-01
      • 2018-08-01
      • 2019-02-19
      • 1970-01-01
      • 2016-04-18
      • 1970-01-01
      相关资源
      最近更新 更多