【发布时间】:2011-09-15 06:29:35
【问题描述】:
所以我有一个函数列表。我想创建一个 for 循环,返回(显然作为一个函数)它们的总和。
为了在 for 循环中创建函数列表,我正在使用此代码
##CODE
f=dnorm
h=function(x){log(f(x))}
S=c(-3,-2,-1,0,1,2,3)
K=matrix(rep(1:length(S),2),ncol=2)
for(i in 1:length(S)){
K[i,]=c(S[i],h(S[i]))
}
funcs=list()
## LOOP TO DEFINE THE LINES
for(i in 1:6){
## Make function name
funcName <- paste( 'hl', i,i+1, sep = '' )
## Make function
func1 = paste('function(x){ (K[',i,'+1,2]-K[',i,',2])/(K[',i,'+1,1]-K[',i,',1])*x+
K[',i,'+1,2]-((K[',i,'+1,2]-K[',i,',2])/(K[',i,'+1,1]-K[',i,',1]))*K[',i,'+1,1]}',sep
= '')
funcs[[funcName]] = eval(parse(text=func1))
}
它创建了一个包含 6 个函数的列表。我怎样才能得到他们的总和?我尝试使用 apply 命令,但我的语法不正确或者它们不起作用。
P.S 我实际上是在尝试为 ars 命令编写一个代码。
【问题讨论】:
-
函数之和是什么意思?一个计算其和数的计算总和的函数?
-
你能用自然语言解释一下这段代码应该做什么吗?为什么需要以如此曲折的方式构造函数?你不能简单地使用普通函数定义来定义函数吗?
-
我也不明白你想做什么。但是,如果你想从你的函数中得到一个值(总和?),你必须给它们一个数值。例如:funcs$hl12(1) 返回 4.58106。
-
你真的不需要在你的问题中使用这么多
?和!。