比如,第一次调用 cdfln3( ), 第二次调用cdfgev( ),等等 for循环如何实现? func <- c ( 'cdfln3', 'cdfgev', ........ ) for ( i in 1:5 ) { func } 这样应该不行吧 返回小木虫查看更多
想这样的话,加个判断?不行吗?
感觉可以用函数指针数组
不允许用函数数组吗
for 里面判断,或者 i作参数,在函数里面判断
> myfun <- function(x, y) {x + y} > funs <- c("rnorm", "runif", "dnorm", "myfun" > paras <- list(list(5, 1, 1), + list(5, 1, 2), + list(seq(0.01,0.99,0.25)), + list(2,3)) > for (i in 1:length(funs)) { + res <- do.call(funs, paras[]) + print(res) + } [1] 1.1676517 2.4706755 0.3297969 0.8477372 1.0756599 [1] 1.626650 1.310351 1.006046 1.814608 1.608650 [1] 0.3989223 0.3856834 0.3502919 0.2988724 [1] 5,
myfun <- function(x, y) {x + y} funs <- c("rnorm", "runif", "dnorm", "myfun" paras <- list(list(5, 1, 1), list(5, 1, 2), list(seq(0.01,0.99,0.25)), list(2,3)) for (i in 1:length(funs)) { res <- do.call(funs, paras[]) print(res) }
醉了,代码没法正常显示
想这样的话,加个判断?不行吗?
感觉可以用函数指针数组
不允许用函数数组吗
for 里面判断,或者 i作参数,在函数里面判断
> myfun <- function(x, y) {x + y}
> funs <- c("rnorm", "runif", "dnorm", "myfun"
> paras <- list(list(5, 1, 1),
+ list(5, 1, 2),
+ list(seq(0.01,0.99,0.25)),
+ list(2,3))
> for (i in 1:length(funs)) {
+ res <- do.call(funs, paras[])
+ print(res)
+ }
[1] 1.1676517 2.4706755 0.3297969 0.8477372 1.0756599
[1] 1.626650 1.310351 1.006046 1.814608 1.608650
[1] 0.3989223 0.3856834 0.3502919 0.2988724
[1] 5,
myfun <- function(x, y) {x + y}
funs <- c("rnorm", "runif", "dnorm", "myfun"
paras <- list(list(5, 1, 1),
list(5, 1, 2),
list(seq(0.01,0.99,0.25)),
list(2,3))
for (i in 1:length(funs)) {
res <- do.call(funs, paras[])
print(res)
}
醉了,代码没法正常显示