As 公式中的意外符号,无法找到

Unexpected Symbol in As Formula, Can't Find

我一直在使用 as.formula 设置 glm,但我无法弄清楚异常符号在哪里。部分问题是我正在转换的字符向量太长了。大约有 700 个单词,中间插入 + 以便将其变成公式。报错如下:

Error in parse(text = x, keep.source = FALSE) : 
   <text>:2:10080: unexpected symbol

使用以下文本片段:

2: c_1_E + Campaign_Search_Payroll_Generic_1_P + Campaign_Search_Performing_Core_Keywords + Campaign_Self_Employment_E + Campaign_Self_Employment_P + Campaign_Withholding + Campaign_Youtube + Sou

我确定的事情:

  1. 没有重复项。
  2. 除字母数字和下划线 (_) 外没有其他符号。
  3. 没有项目以数字开头。

我对 R 不够精通,无法阅读 as.formula 的文档或函数调用本身。

有什么想法吗?

<text>:2:10080 给出错误的位置。第二行,第 10080 个字符。考虑:

parse(text="1 + 1 + 2\n a - 3 b")
# Error in parse(text = "1 + 1 + 2\n a - 3 b") : 
#   <text>:2:8: unexpected symbol

这里,错误是 b,这是一个符号的非法使用,你会注意到它是第二行的第 8 个字符。

您很可能遗漏了一个 +,但如果没有错误背后的数据,您将无法得知。此外,不要判断或任何东西,但这是一个非常多的变量要坚持到模型中。我希望你有很多数据点。

以下是对我有用的解决此问题的方法。

features = make.names(features)

right_side = paste0(features, collapse=" + ")

fml = as.formula(sprintf(" ~ %s", right_side))