我有这个功能
ANN<-function (x,y){
DV<-rep(c(0:1),5)
X1<-c(1:10)
X2<-c(2:11)
ANN<-neuralnet(x~y,hidden=10,algorithm='rprop+')
return(ANN)
}
我需要像
一样运行的功能 formula=X1+X2
ANN(DV,formula)
并获得该函数的结果。所以问题是说函数使用在函数运行期间创建的对象。我需要通过lapply运行x,y的更多组合,所以我需要这样。有什么建议如何实现呢?感谢
答案 0 :(得分:0)
我已经编辑了我的答案,这对我来说仍然有用。对你起作用吗?你能具体说明你遇到了什么样的错误吗?
新回复:
ANN<-function (y){
X1<-c(1:10)
DV<-rep(c(0:1),5)
X2<-c(2:11)
dat <- data.frame(X1,X2)
ANN<-neuralnet(DV ~y,hidden=10,algorithm='rprop+',data=dat)
return(ANN)
}
formula<-X1+X2
ANN(formula)
答案 1 :(得分:0)
如果您需要,请分别指定公式的两个部分,您仍应将它们作为公式传递。
library(neuralnet)
ANN<-function (x,y){
DV<-rep(c(0:1),5)
X1<-c(1:10)
X2<-c(2:11)
formula<-update(x,y)
ANN<-neuralnet(formula,data=data.frame(DV,X1,X2),
hidden=10,algorithm='rprop+')
return(ANN)
}
ANN(DV~., ~X1+X2)
假设您使用neuralnet()
库中的neuralnet
,似乎data=
是必需的,因此您需要传入一个data.frame那些专栏。
公式为特殊,因为除非明确要求,否则不会对它们进行评估。这与仅使用符号不同,只要您使用它就会在适当的帧中评估某些符号。这意味着DV
(a&#34; name&#34;)和DV~.
(公式)之间存在很大差异。后者更安全地传递给函数并在不同的上下文中进行评估。使用符号/名称会变得更加棘手。