修改R

时间:2019-03-14 20:55:46

标签: r

这是我的问题:

如何仅通过设置默认的“模式”参数来修改“目录”基本功能?

注意。我必须使用dir base函数,而不要使用另一个。

我之所以需要它的原因如下(以防万一有人建议其他解决方案):

我需要加载GGIR包

library(GGIR)

在加载时,还会加载一些功能。我正在使用其中许多功能(例如“ g.part2”),但出现此错误:

Error in load(paste0(path, fnames[i])) : 
  bad restore file magic number (file may be corrupted) -- no data loaded
In addition: Warning message:
file ‘desktop.ini’ has magic number '[.She'
  Use of save versions prior to 2 is deprecated

我调试了程序包和功能,并且我已经知道发生了什么事

执行“ g.part2”时,将创建目录并将一些文件存储在其中。但是,在创建目录时,我的Windows还在其中创建了一个名为“ desktop.ini”的隐藏文件(我调查了几天,但没有找到避免生成desktop.ini的方法)。

然后,使用“ dir”功能恢复存储在目录中的文件名(包括desktop.ini)。这些文件已被读取,并且在尝试读取desktop.ini时失败。

为了解决这个问题,我的第一种方法是通过仅修改dir基本函数中“ pattern”参数中的默认值来创建用于排除desktop.ini的“ dir1”函数。然后我不得不修改“ g.part2”

trace(g.part2,edit=TRUE)

…并将“ dir(”替换为“ dir1(”

但是,类似于“ g.part2”,我需要使用几个函数(“ g.part3”,“ g.part4”,“ g.part5”,“ g.report.part4” ... 。),并在内部使用“ dir”功能。对我来说,每天“跟踪”许多功能是不可行的,此外,它不能以编程方式完成,不是吗?

因此,我认为解决方案(如果可能)是修改dir基本函数并为pattern参数设置默认值,仅用于排除desktop.ini文件。这样做,我不需要修改GGIR包中的任何功能。

最诚挚的问候

1 个答案:

答案 0 :(得分:0)

我可以使用以下方法修改dir基本功能:

trace(base::dir,edit=TRUE)

但是,为了解决我的问题,我没有修改此基本功能,而是按照Gregor注释中的说明进行操作:

  

回复:分叉存储库,您转到其github页面,单击分叉按钮   在右上角,然后下载您自己的软件包副本   码。您可以打开它(在RStudio中),编辑所需的文件,然后   构建并安装修改后的版本。 (这可以全部   如果您安装了辅助程序包,devtools,   roxygen2,testthat等。)这肯定是一种学习   经验,但是如果必要的更改实际上很小,   不会太糟

现在,我不需要手动修改任何内容。我只是加载我的GGIR库

load(GGIR)

…(由我修改),并且一切正常!。

非常感谢。

致谢