如何修改R代码实现多个n值批量运行生成对应expand.grid结果
R多n值批量运行代码解决方案
错误原因
- 你写的
n = [2:8]不符合R语法:R中生成2到8的连续整数向量直接使用2:8即可,不需要加方括号包裹 expand.grid的输入参数要求单次计算的n是单个正整数值,不能直接传入长度大于1的向量,需要遍历n的每个取值分别计算
正确实现代码
方案1:lapply写法(R惯用简洁风格)
运行后所有结果会存在列表中,每个列表元素对应一个n的计算结果:
# 定义所有需要计算的n取值 n_values <- 2:8 # 遍历每个n分别运行逻辑,结果存储为列表 funs_list <- lapply(n_values, function(n) { expand.grid(rep(list(1:10), n)) }) # 给列表元素命名,方便后续调用 names(funs_list) <- paste0("n_", n_values)
调用示例:如果要提取n=3的运行结果,直接使用funs_list[["n_3"]]即可。
方案2:for循环写法(逻辑更直观)
n_values <- 2:8 funs_list <- list() for (i in seq_along(n_values)) { current_n <- n_values[i] funs_list[[i]] <- expand.grid(rep(list(1:10), current_n)) } names(funs_list) <- paste0("n_", n_values)
内容的提问来源于stack exchange,提问作者user15697038
相关产品推荐
相关产品推荐

