我正在尝试创建一个自动化一些基本计算的函数。但是它似乎没有定义最终的mat
对象,即使嵌入到函数中的代码在放在它外面时也能完美地工作。显然我正在做一些基本错误,但我无法弄清楚出了什么问题。
代码是:
my_f = function(covs, B, k) {
### empty matrix
coeff <- paste("b_", covs, sep="")
se <- paste("se_", covs, sep="")
mat <- matrix(nrow=B, ncol=2+2*k, dimnames=list(c(), c("sim","N",coeff,se)))
mat[,"sim"] <- seq(1:B)
}
my_f(covs=list("x1", "x2"), B=50, k=2)
感谢您的帮助!
答案 0 :(得分:3)
虽然目前还不清楚你希望它返回什么,但我认为你忘记了函数末尾的return(mat)
行。
当前定义myf
时,它将仅返回最后评估的事物m[, "sim"]
,这是一个向量(因此忘记了矩阵的其余部分)。
您还必须将my_f
的结果分配给变量(可以是,但不一定是,也称为mat
)。< / p>
mat <- my_f(covs=list("x1", "x2"), B=50, k=2)