在软件包rootSolve
中,函数multiroot
需要一个输入自变量,它是函数的集合。我找到了一种动态确定该输入参数中包含多少个函数的方法,但是希望R
社区提供一些有关更清洁方法的帮助。此处的示例输入函数(未定义,但就解析而言并不重要)
Kfunc<-function(x) {
z<-c( z1<- 4*var1 -3*var2 +5*var3, z2<-8*var1 +5*var2 -2*var3 )
}
其中z1,z2,z3
是输出,“ varJ”是要确定的参数
我想出了这堆函数,以找出在z
定义的“内部”有多少个单独的函数:
bar <- parse(text = (parse(text = body(Kfunc)[2] )[[1]][3]))
length(bar[[1]])
#[1] 3
bar[[1]][1]
#c()
bar[[1]][2]
#(z1 <- 4 * var1 - 3 * var2 + 5 * var3)()
bar[[1]][3]
#(z2 <- 8 * var1 + 5 * var2 - 2 * var3)()
表明方程式的数量等于length(bar[[1]]) - 1
是否有更快/更短/更干净的方法,最好不需要非基本库?