我有一个名为mat的N x 2矩阵。
mat <- cbind(c(2:4), c(.5, 1, 1.5))
colnames(mat) <- c('x2', 'x3')
我在R中创建了一个名为calcCDF的函数。此函数需要3个输入x1,x2和x3。 x1默认为100000.实际的calcCDF函数更复杂。下面显示的只是为了说明这一点。
calcCDF <- function(x1=100000, x2, x3){
cdf <- x1 + x2 * x3
return(cdf)
}
calcCDF(x2=2, x3=0.5)
返回值100001
我希望x2和x3分别用mat的第一列和第二列填充,并将该函数应用于mat的每一行,以便我得到一个长度为N的向量。
我尝试了apply(mat, 1, calcCDF(x2=mat[1], x3=mat[2]))
,但收到错误说明错误:意外']'。
答案 0 :(得分:1)
如果您想将apply()
与自定义函数calcCDF
一起使用,可以使用
apply(mat, 1, function(y) calcCDF(x2 = y[1], x3 = y[2]))
OR
apply(mat, 1, function(x) calcCDF(x2 = x["x2"], x3 = x["x3"]))