0

我正在尝试创建一个函数来自动化一些基本计算。然而,它似乎没有定义最终的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)

谢谢你的帮助!

4

1 回答 1

3

虽然尚不清楚您希望它返回什么,但我认为您忘记了return(mat)函数末尾的行。

正如myf当前定义的那样,它将仅返回评估的最后一个事物m[, "sim"],它是一个向量(因此忘记了矩阵的其余部分)。

您还必须将结果分配my_f给一个变量(可以是,但不一定是,也命名mat)。

mat <- my_f(covs=list("x1", "x2"), B=50, k=2)
于 2013-01-09T02:51:18.663 回答