You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何循环执行函数并将多份输出存储至DataFrame中?

循环执行R函数并将结果存入DataFrame

你已经定义了返回采样均值和标准差的函数:

sample_vec <- function(v,n){
  currentsample <- sample(v,n) 
  m <- mean(currentsample) 
  s <- sd(currentsample)
  return(c(m,s))
}

也创建了用于存储结果的空DataFrame:

sdf <- data.frame(matrix(NA, nrow = 10000, ncol = 2))
colnames(sdf)[1] = "m"
colnames(sdf)[2] = "s" 

以下两种方法可以帮你循环执行函数10000次,并把结果存入对应列:

方法1:for循环(直观易读)

直接遍历索引,每次执行函数后将结果赋值给DataFrame的对应位置:

for (i in 1:nrow(sdf)) {
  res <- sample_vec(gene_df$gene_length_bp, 3)
  sdf$m[i] <- res[1]
  sdf$s[i] <- res[2]
}

方法2:lapply + do.call(高效简洁)

利用R的向量化操作批量生成结果,比for循环效率更高,适合大次数循环场景:

# 生成包含10000次结果的列表
res_list <- lapply(1:10000, function(x) sample_vec(gene_df$gene_length_bp, 3))
# 将列表转换为数据框并设置列名
sdf <- as.data.frame(do.call(rbind, res_list))
colnames(sdf) <- c("m", "s")

内容的提问来源于stack exchange,提问作者NSA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 22:42:17