我需要从R中的df采样n组n个随机行

时间:2019-05-04 17:51:29

标签: r function loops random iteration

我想迭代n次从数据帧随机绘制n行的函数。由于这些组由785行组成,因此功能如下:

randomSample = function(merged_df_1, n) { 
  return( merged_df_1[sample(nrow(merged_df_1), 785),] )
}

要对该函数进行10次迭代,我尝试了这段代码

n=10
lapply(rep(1, n), randomSample)

但是我收到以下错误消息

  

“ sample.int(length(x),size,replace,prob)中的错误:     无效的第一个参数”

1 个答案:

答案 0 :(得分:2)

发生的事情是lapply获取rep(1,n)向量并将其用作函数的第一个参数。我猜你可以这样做:

randomSample = function(n, merged_df_1) { 
#note that the function doesn't really use n inside it, if you want so, you should #replace 785 for n and use rep(n,n) inside the lapply call
  return(merged_df_1[sample(nrow(merged_df_1), 785),] )
}

n=10
lapply(rep(1,n), function(x)randomSample(x,merged_df_1))