gpt4 book ai didi

r - 在 R 中使用很长的字符串创建公式

转载 作者:行者123 更新时间:2023-12-04 22:11:27 25 4
gpt4 key购买 nike

我的情况是,我有一个向量,其中包含一个非常大的数据框的列名。

我们假设:x = c("Name", "address", "Gender", ......, "class" ) [约100个变量]

现在,我想创建一个公式,我最终将使用它来创建 HoeffdingTree .
我正在使用以下方法创建公式:

myformula <- as.formula(paste("class ~ ", paste(x, collapse= "+")))

这会引发以下错误:

Error in parse(text = x) : :1:360: unexpected 'else' 1:e+spread+prayforsonni+just+want+amp+argue+blxcknicotine+mood+now+right+actually+herapatra+must+simply+suck+there+always+cookies+ever+everything+getting+nice+nigga+they+times+abu+all+alliepickl


paste上述语句中的部分工作正常,但将其作为参数传递给 as.formula正在抛出各种奇怪的问题。

最佳答案

问题是你有 R 关键字作为列名。 else是一个关键字,因此您不能将其用作常规名称。

一个简化的例子:

s <- c("x", "else", "z")
f <- paste("y~", paste(s, collapse="+"))
formula(f)
# Error in parse(text = x) : <text>:1:10: unexpected '+'
# 1: y~ x+else+
# ^

解决方案是将您的单词用反引号“`”括起来,以便 R 将它们视为非语法变量名。
f <- paste("y~", paste(sprintf("`%s`", s), collapse="+"))
formula(f)
# y ~ x + `else` + z

关于r - 在 R 中使用很长的字符串创建公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29555473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com