我正在尝试以群集/阻止的方式对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)}))
是否有更有效的方法?取消列出/套用步骤尤其缓慢。
直接有效的选项是match
match(index_sample, data[[cluster_var]])
或带有split
split(data[[cluster_var]], index_sample)