R,在函数内调用Matrix包

时间:2014-11-17 17:29:37

标签: r matrix package sparse-matrix

我正在使用Matrix包在我的个人R包中包含的函数内创建一个稀疏矩阵,比如说

myfun <- function(x, ...){
  d = Matrix(0, 5, 5, sparse = TRUE)
  d[seq(1,25, by=x)] = 1  
  t(d)
}

(class(d)is&#34; dgCMatrix&#34;) 如果我在一般环境中声明该函数并从控制台运行它,一切正常。但是,当从包中调用它时,我得到了

Error in t.default(D) : argument is not a matrix 

本质上R试图从基础环境调用t()函数,而不是Matrix包提供的t()版本,它拥有处理dgCMatrix类对象的方法。

我尝试在函数中显式调用库(Matrix),但它没有帮助。

我和另一个函数colSums()有同样的问题,我用Matrix :: colSums()解决了它。但是,我想找到一个更通用和实用的补救措施,而不是为每个功能指定环境。

我强调如果我在一般环境中加载函数,R会正确加载Matrix中的函数。

关于问题根源的任何想法,或者我如何强制R从Matrix读取这些函数?

0 个答案:

没有答案