Jer*_*rry 4 r rstudio r-package
我在Rstudio中构建我的R包,当我厌倦了创建包的小插图时遇到了一些意外的问题。当我在Rstudio中点击“构建/加载”面板时,在创建包文档时出现了晕影错误。为了可能解决我遇到的小插图错误,我必须将外部数据添加到我的程序包中,并使用此数据相应地编译程序包小插图。我使用devtools::install()命令安装了软件包,但未inst/创建目录。extdata必须位于inst目录中。我也曾经devtools::use_data()从PC添加数据,但是无法添加外部数据。如何为包裹加载外部数据?我认为我不应该手动创建extdata外部数据并将其放在那。为什么inst/在我使用时未创建devtools::install()?如何将一组csv文件作为外部数据添加到我的程序包中?
这是我将在小插图中使用的玩具助手功能,以读取外部数据:
myFunc <- function(myDir, ...) {
files <- list.files(myDir, full.names = TRUE, "\\.csv$")
readMe <- lapply(files, read.csv)
return(readMe)
}
Run Code Online (Sandbox Code Playgroud)
这是我第一次构建R软件包,并遇到一些常见错误。如果我的问题陈述得不好,我会道歉。
要在其中找到文件inst/,我需要使用system.file(),但是我没有这个目录,加上myFunc接受文件目录来抓取文件并将其读取为.csv,这是玩具代码块,可以在小插图文件中执行:
```{r}
library(myPkg)
file.1 <- system.file("extdata", "xxx.csv", "myPkg")
file.2 <- system.file("extdata", "yyy.csv", "myPkg")
myFunc(list(file.1, file.2))
```
Run Code Online (Sandbox Code Playgroud)
如何使用此数据将外部数据加载到我的包中以编译包小插图?为什么inst/我点击时不创建devtools::installl()?任何人都可以帮我怎么做吗?谢谢!
您应该inst/extdata/file.csv在项目的基本目录(位置DESCRIPTION)中手动创建。您可以将所有要访问的文件放在该目录中。
然后在函数示例或小插图中获取文件:
files <- lapply(list.files(system.file('extdata', package = 'my_package'), full.names = TRUE), read.csv)
Run Code Online (Sandbox Code Playgroud)
system.file()返回extdata文件夹的路径,然后list.files()将创建中所有文件的向量extdata。最后,运行lapply()with read.csv()应该为您将所有文件的内容读入一个列表中。