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

使用lapply执行回归时遇str2lang错误:unexpected symbol

问题分析与解决

错误根源

报错的核心原因是回归公式构建不合法:你用paste(x, paste(y, collapse="+"))生成的字符串缺少了分隔因变量和自变量的~符号,导致as.formula无法解析成正确的回归公式。比如生成的错误字符串是"pond_total_index_blocs_iguals unitatespecifica+...",而R要求的回归公式格式必须是"因变量 ~ 自变量1+自变量2+..."。

另外还有两个潜在问题需要修正:

  • 自变量列表里的actutransv拼写错误,数据集对应的列名是actu_transv(带下划线)
  • 自变量列表重复包含util_rec_nuevo_pers,会导致模型出现重复变量的报错

修正后的代码

1. 修正自变量定义

dep <- list("pond_total_index_blocs_iguals") 
# 修正拼写错误,移除重复变量
variables_index_subst_ <- c("unitatespecifica", "responsable", "actu_transv", "util_rec_nuevo_pers", "ord_aprob", "pers_transp_tareas")

2. 修正公式构建逻辑

在拼接公式时添加~分隔因变量与自变量:

models <- lapply(dep, function(x, y) {
    # 构建合法的回归公式字符串
    formula_str <- paste(x, "~", paste(y, collapse = "+"))
    step(lm(as.formula(formula_str), data = juntar_blocs), direction = "backward")
}, y = variables_index_subst_)

额外注意事项

你的数据集样本量仅为6个,远小于自变量数量,这种情况下逐步回归无法得到统计学上合理的模型结果,建议增加样本量后再执行分析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 14:12:08