如何更好地分析`call`的内容?

时间:2019-06-02 19:49:10

标签: r parsing

在软件包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

是否有更快/更短/更干净的方法,最好不需要非基本库?

0 个答案:

没有答案