我的项目目录结构的一部分如下:
\projects\project\main.R
\projects\project\src
其中\src
包含一堆1-function-per-file,项目特定的函数。
问:将这些功能添加到工作目录projects\project
的最佳做法是什么?
我看到了一些解决方案:
attach("./src")
。我试图避免这种情况,因为(1)Google Styleguide建议避免使用attach()
和(2)我收到
Warning messages:
1: Reading Unix style database directory (./tmp) from Splus on Windows: may
have problems finding some datasets, especially those whose names
differ only by case (file tmp-script1.ssc should not have been made by
Splus on Windows) in: exists(name, where = db)
这样做的时候。
lapply(paste("./src/",list.files("./src/"),sep=""),source)
。这很好用,看起来很笨重。必须有更好的方法,对吗?
请按照我的全名./src/myfunc
来查看我的功能。这会很快变得难看。我确信有更好的方法。
删除目录中的./src
部分,然后将所有函数抛出到主工作目录中。这个问题是我宁愿保持一个与John Myles White的ProjectTemplate
将所有功能放在一个文件./src/func.R
中,然后将其输出。我想这种方法避免了“2”的丑陋。上面,但我真的希望每个文件都有一个功能。只是看起来更清洁。
答案 0 :(得分:6)
尝试
lapply(list.files("src", full.names = TRUE), source)
修改强>
或
lapply(Sys.glob("src/*"), source)
答案 1 :(得分:1)
如果您不想将所有内容放入本地包中,那么我会选择选项2。