我认为使用完全限定的名称来避免使用我没有明确介绍的名称来污染我的范围就足够了,但显然,对于R,情况并非如此.
例如,
% R_PROFILE_USER= /usr/bin/R --quiet --no-save --no-restore > ls(all = TRUE) character(0) > load("/home/berriz/_/projects/fda/deseq/.R/data_for_deseq.RData") > ls(all = TRUE) [1] "a" "b" "c" > ?rlog No documentation for ‘rlog’ in specified packages and libraries: you could try ‘??rlog’
到现在为止还挺好.特别是,正如最后一个命令所示,解释器一无所知rlog
.
但是在我跑完之后
> d <- DESeq2::DESeqDataSetFromMatrix(countData = a, colData = b, design = c)
...然后,此后,该命令?rlog
将为我未明确引入环境的函数生成文档页面(并未使用完全限定名称引用).
我觉得这种行为令人不安.
特别是,我不知道我明确提出的某些定义何时会被默默地视为一些看似无关的命令的副作用.
如何控制环境可以看到的内容?
或者换句话说,如何防止上面所示的副作用?