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

如何循环遍历howmany与howmuch参数批量生成修改后的DataFrame?

实现参数组合遍历生成多个DataFrame

你可以通过生成参数的笛卡尔积组合,再批量调用函数的方式实现需求,具体代码如下:

# 保留你原有的数据与函数
value <- iris[1:120,]
 
cngfunc <- function(day,howmany,howmuch){
  shuffled <- day[sample(1:nrow(day)), ]
  n <- as.integer((howmany/100)*nrow(day)) # 选取待修改数据的比例
  extracted <- shuffled[1:n, ]
  extracted$changed <- extracted[,1]*((howmuch/100)+1) # 设置数据修改幅度
  extracted
}

# 生成howmany与howmuch的所有组合
param_pairs <- expand.grid(
  howmany = c(10,20,30,40,50),
  howmuch = c(10,20,30,40,50)
)

# 遍历所有参数组合,生成对应DataFrame并存储为列表
df_list <- lapply(1:nrow(param_pairs), function(idx) {
  cngfunc(
    day = value,
    howmany = param_pairs$howmany[idx],
    howmuch = param_pairs$howmuch[idx]
  )
})

# 为列表元素命名,便于识别对应参数
names(df_list) <- apply(param_pairs, 1, function(row) {
  sprintf("howmany_%s_howmuch_%s", row["howmany"], row["howmuch"])
})

关键说明:

  • expand.grid会生成包含25组参数的表格,覆盖howmany和howmuch的所有笛卡尔积组合;
  • lapply遍历参数表格的每一行,调用cngfunc生成对应的DataFrame,最终结果以列表形式存储(df_list包含25个DataFrame);
  • 最后通过sprintf为列表元素命名,你可以通过类似df_list[["howmany_20_howmuch_30"]]的方式快速定位到指定参数组合的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 20:24:22