我想创建一个函数来自动化一些基本的计算。然而,它似乎没有定义最终的mat
对象,即使嵌入到函数中的代码完美的工作,当放在它外面..显然我正在做一些基本的错误,但我无法弄清楚什么是错的。R中的基本自定义函数没有定义内部对象
的代码是:
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)
感谢您的帮助!
它以什么方式不起作用?你期待什么产出,而不是它给你什么? –
@joran:确实最后一行会破坏函数,但它会完全返回'seq(1:B)',因为这就是'[<-'将返回的内容。 –
@Dwin,是的,但它似乎不会返回,除非您将'my_f(...)'分配给某个东西。比较'my_f(covs = list(“x1”,“x2”),B = 50,k = 2)'到'x < - my_f(covs = list(“x1”,“x2”),B = 50 ,k = 2); x' – mnel