我已将数据帧的变量名提取到一个维数为3000的字符的向量中。为了在监督学习模型中使用它,我想创建一个类似于
的表达式var1 + var2 + var3 + ... + var3000
我可以在分类树的模型公式中使用的。是否有完成此任务的简单方法?
答案 0 :(得分:1)
我不确定您的问题中是否有足够的信息可以给我具体的答案,但这是一个开始...
您可以使用以下方法从名为DONTCAPTUREME
的data.frame中提取变量名:
df
您可以通过以下方式获得所需的变量名称模式,并在其之间加号:
names_vec <- names(df)
到目前为止,您可能只希望将公式的“右侧”输入建模函数。再次使用string_1 <- paste(names_vec, collapse = " + ")
通过添加左侧来“完成”公式(假设您的因变量称为paste
)
y
现在,虽然此字符串向量看起来像R公式,但实际上只是一个存储在length-1向量中的字符串。 R通常会“知道”它将字符串转换为公式,但是如果您需要手动执行此操作,只需将字符串向量包装在string_2 <- paste("y ~", string_1)
中,如下所示:
formula
值得一提的是,如果您在data.frame中有3001个变量(例如,一个“ y”变量和3000个“ x”变量),那么您可以简单地使用句点(..)来表示“所有其他变量”,如:
lm(formula(string_2), data=df)
这将达到与我上面的4步方法相同的结果。
希望这足以让您入门...
答案 1 :(得分:1)
@DanY对y ~ .
的回答在许多情况下都很好,但是可能不适用于所有建模框架。 paste()
也可以使用,但是?reformulate
是粘贴和转换为公式对象(即
reformulate(names_vec, response="y")
如果要使用单边公式,请忽略response
参数。