将配方添加到功能中

时间:2014-08-08 16:34:18

标签: r

我有这个示例数据

    install.packages('neuralnet')
    library(neuralnet)    
    DV<-runif(20,min=-3,max=3)
    RV_1<-runif(20,min=-3,max=3)
    RV_2<-runif(20,min=-3,max=3)
    formula<-'RV_1+RV_2'
    df<-data.frame(DV=DV,RV_1=DV_1,RV2=RV_2)

我以这种方式学习神经网络

neuralnet(DV~RV_1+RV_2,data=df,hidden=5)

一切都运作良好。

但是如果我需要在函数中使用它来获得更多组合,我需要像

一样使用它
testfun<-function(x,y){
  nnet<<-neuralnet(x~y,data=df,hidden=5)
}
testfun(DV,formula)

哪个不起作用 我尝试过这些方法

testfun<-function(x,y){
  nnet<<-neuralnet(print(x,quote=FALSE)~print(y,quote=FALSE),data=df,hidden=5)
}

testfun<-function(x,y){
  nnet<<-neuralnet(as.symbol(x)~as.symbol(y),data=df,hidden=5)
}

testfun<-function(x,y){
  nnet<<-neuralnet(get(x)~get(y),data=df,hidden=5)
}

但没有任何作用。问题是我无法更改formula对象,我仍然无法进入低谷。

有任何建议如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

试试这个?

testfun<-function(x,y) {
    neuralnet(as.formula(paste(x, "~", y, sep ="")), data=df, hidden=5)
}

nnet <- testfun("var1", "var2")