通过用户输入选择功能

时间:2014-10-01 19:46:39

标签: r readline

我有一个功能列表,我想通过用户输入选择其中一个,使用它进行回归,然后显示函数输出 summary

re_show<-function(y){
        f1<-x+I(x^2)
        f2<-I(x^0.5)+I(x^2)
        ...
        f20<-x+I(x^0.5)+I(x^2)

        message("Choose the model")
        i <- readLines(n = 1)
        summary(lm(y~i))
        plot(lm(y~i))
        }

您对如何解决此问题有任何想法吗? 谢谢。

1 个答案:

答案 0 :(得分:1)

这里是我能为你的功能提供的最普遍的答案。我已将其更改为接受因变量,自变量和数据集。如果您不喜欢此选项,则始终可以将参数设置为默认值,或者将功能修改为特定方案。现在,此功能将允许您使用您希望的任何数据集(未提供样本数据)。我还添加了一个switch语句,允许用户从stdin中选择要使用的模型。使用iris数据集显示了一个简单的示例。

re_show<-function(dv, iv, dat){

  # Define your variables to evaluate
  x <- dat[,iv]
  y <- dat[,dv]

  # choose the function
  message("Choose the model")
  fun <- readLines(n = 1)

  # The switch statement
  i <- switch(fun, 
                f1 = {x+I(x^2)},
                f2 = {I(x^0.5)+I(x^2)},
                # add your remaining functions
                f20 = {x+I(x^0.5)+I(x^2)}
  )

  # finish your analysis
  print(summary(lm(y~i)))
  plot(lm(y~i))
}

data(iris)
re_show("Sepal.Length", "Sepal.Width", iris)