【发布时间】:2018-11-29 00:24:34
【问题描述】:
您好,我正在尝试遍历数据帧列表并从数据帧中提取不同大小的样本。例如,对于 df1,我想要一个大小为 10 的样本,df2 是一个大小为 8 的样本,等等。我曾与 Melissa Key 在我之前提出的问题上合作开发以下代码:
sampler <- function(df, n,...) {
return(df[sample(x=nrow(df),n),])
}
#for(i in 1:totalstratum){
sample_list<-lapply(population_list,sampler,n=stratum_sizes[i,1])
#}
#or
library(purrr)
sample_list<-map2(population_list, stratum_sizes,sampler)
其中stratum_sizes是一个向量{4,5,3,2,10,10,8}和totalstratum=nrow(stratum_sizes),它也等于列表population_list中的元素个数。
到目前为止,我能够获得一个样本,但从来没有正确的观察次数。有任何想法吗?提前感谢您的帮助!
【问题讨论】:
-
你能举个例子说明什么不起作用,包括你得到什么输出和你想要什么输出?例如,
map2(list(mtcars, iris), c(4,5), sampler)正如您在问题中提出的那样对我来说运行良好,但我不知道您是否期望不同的输出。
标签: r for-loop random lapply sample