我有这个示例数据
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
对象,我仍然无法进入低谷。
有任何建议如何解决这个问题?
答案 0 :(得分:2)
试试这个?
testfun<-function(x,y) {
neuralnet(as.formula(paste(x, "~", y, sep ="")), data=df, hidden=5)
}
nnet <- testfun("var1", "var2")