【发布时间】:2017-02-02 21:33:04
【问题描述】:
我编写了一个函数,但我想知道如何通过应用seq(0, 1.5, by =.1) 代替a 来重复函数?
这是我的 R 代码:
n1 = 20
n2 = 20
T1 = -1.26491106
df = 38
a = "wide"
nb <- (n1*n2)/(n1+n2)
a = c(medium = 1/2, wide = sqrt(2)/2, verywide = 1)[[a]]
OO <- function(t,nb,df,a){
integrand <- function(g){
(1+nb*g)^(-1/2)*(1+t^2/(df*(1+nb*g)))^(-(df+1)/2)*(2*pi)^(-1/2)*g^(-3/2)*exp(-a^2/(2*g))
}
num <- a*integrate(integrand,0,Inf)$value
denom <- (1+t^2/df)^(-(df+1)/2)
return(num/denom)
}
OO(t=T1,nb=nb,df=df,a=a) ## HERE IS THE FUNCTION ##
【问题讨论】:
-
看看
apply函数 -
help.search("apply a function")