R数据帧的更有效块重采样

问题描述 投票:0回答:1

我正在尝试以群集/阻止的方式对R数据帧进行重新采样。我正在使用下面的代码段来执行此操作,但是它非常慢:

    index_sample <- sample(unique(data[[cluster_var]]), 
                           size=length(unique(data[[cluster_var]])), replace=T)

    indices <- unlist(sapply(index_sample, FUN=function(x) {which(data[[cluster_var]] == x)}))

是否有更有效的方法?取消列出/套用步骤尤其缓慢。

r dataframe sampling sapply
1个回答
0
投票

直接有效的选项是match

match(index_sample, data[[cluster_var]])

或带有split

 split(data[[cluster_var]], index_sample)
© www.soinside.com 2019 - 2024. All rights reserved.