【发布时间】:2013-09-12 11:26:23
【问题描述】:
我正在使用闪亮创建一个用于简单线性回归的应用程序。我想自动将变量名传递给模型。我尝试了来自用户的可变输入。 server.R 中的代码是
lm(paste(input$dependent," ~ ",input$independent), data=data1())
和
lm(paste0(input$dependent) ~ paste0(input$independent), data=data1())
并且还尝试了以下语法;
lm(names(data1()[2]) ~ names(data1()[1]) , data=data1())
这些都不行...
如何将变量名称传递给模型?
提前谢谢...
【问题讨论】:
-
input是什么类型的对象(例如data.frame)?现在您告诉lm()在data1中搜索数据,而如果我理解正确,则因变量和自变量在对象input中。如果确实存储了所有需要的变量input,你可以只做lm(dependent ~ independent, data=input)。但也许您可能需要查看update.formula。 -
我有一个名为“data1”的数据集。它有 2 列,标题为“var1”和“var2”。我不想像'lm(var1~var2,data = data1)'这样的模型直接给变量名称。无论我选择什么数据,它都应该自动将变量名带入模型中。
-
他们怎么不工作了?有哪些错误或意外结果?
-
是的,下面的代码正在运行;
lm(paste(input$dependent," ~ ",input$independent), data=data1())但是在回归摘要中它没有显示正确的公式。它显示了我们在代码中输入的内容。Call: lm(formula = paste(input$dependent, " ~ ", input$independent), data = data1()) Coefficients: (Intercept) Age_in_Months 64.928 0.635 -
还有下面显示的错误;
Error in parse(text = x) : <text>:2:0: unexpected end of input 1: ~ ^ Warning in model.matrix.default(mt, mf, contrasts) : the response appeared on the right-hand side and was dropped