我在R中编写了以下函数。函数的输出是变异系数(标准差/平均值)。
CV_concentration <- function(x,cv.tol.raw,A,B,C,D){
y_at_x <- (A-D)/(1+(x/C)^B)+D
y_low <- y_at_x * (1-cv.tol.raw/sqrt(2))
y_high <- y_at_x * (1+cv.tol.raw/sqrt(2))
x_at_ylow <- C*((A-D)/(y_low-D)-1)^(1/B)
x_at_yhigh <- C*((A-D)/(y_high-D)-1)^(1/B)
x_range <- c(x_at_ylow, x_at_yhigh)
cv_con <- sd(x_range)/mean(x_range)
return(cv_con)
}
如果我要为除x以外的所有参数赋予默认值,我的函数将如下所示。
CV_concentration <- function(x,cv.tol.raw=0.1,A=100,B=5000,C=5000,D=350000)
如果我当时要评估单个X值(比如x = 300),我的函数会毫无问题地进行评估;但是,我想在不同的X值下测试我的函数,而不必每次都调用该函数。
x <- c(400,500)
CV_concentration(x,cv.tol.raw,A,B,C,D)
上面的代码显然没有返回值向量。如何将值向量作为输出返回?请给我一些指示。我尝试了各种应用功能,并且所有功能都无济于事。感谢。
答案 0 :(得分:0)
如果x
是num vector
sapply(x, CV_concentration)
如果x
是数据框df
sapply(df$x, CV_concentration)