如何将值向量传递给函数?

时间:2018-04-25 14:32:14

标签: r function arguments

我在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)

上面的代码显然没有返回值向量。如何将值向量作为输出返回?请给我一些指示。我尝试了各种应用功能,并且所有功能都无济于事。感谢。

1 个答案:

答案 0 :(得分:0)

如果xnum vector

sapply(x, CV_concentration) 

如果x是数据框df

中的列
sapply(df$x, CV_concentration)