R中的基本自定义函数不定义内部对象

时间:2013-01-09 02:47:02

标签: r function user-defined-functions

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

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

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

您还必须将my_f的结果分配给变量(可以是,但不一定是,也称为mat)。< / p>

mat <- my_f(covs=list("x1", "x2"), B=50, k=2)