我正在Rstudio中構建我的R包,當我厭倦了創建包的小插件時,遇到了一些意想不到的問題。當我在Rstudio中點擊構建/加載面板時,我創建了包的文檔時出現了小插件錯誤。爲了可能解決我得到的暈影錯誤,我必須將外部數據添加到我的包中,使用此數據來相應地編譯包裝小插圖。我用devtools::install()
命令來安裝我的軟件包,但沒有創建inst/
目錄。 extdata
必須位於inst
目錄中。我還用devtools::use_data()
從我的電腦中添加我的數據,但我無法添加我的外部數據。我如何爲我的包加載外部數據?我想我不應該手動創建extdata
並在那裏放置外部數據。爲什麼inst/
在我使用devtools::install()
時未被創建?如何將一組csv文件作爲外部數據添加到我的包中?如何將外部數據文件添加到開發R包中?
這是玩具輔助函數,我會在我的小插曲用來讀取外部數據:
myFunc <- function(myDir, ...) {
files <- list.files(myDir, full.names = TRUE, "\\.csv$")
readMe <- lapply(files, read.csv)
return(readMe)
}
這是我第一次建立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))
```
如何將外部數據加載到我的包中以便使用此數據編譯包裝小插曲?爲什麼inst/
不是在我點擊devtools::installl()
時創建的?任何人都可以幫助我如何做到這一點?在此先感謝:)
我認爲inst /目錄可以由Rstudio在安裝我的軟件包時自動創建。我在github中查看了其他人的軟件包。另外,我的數據可能是多個csv文件,其中system.file()只能找到單個文件。我怎樣才能使這個更具編程性?請有更好的主意嗎? – Jerry
也許RStudio可以,但當我手動創建文件夾時,它對我來說同樣適用。我更新了代碼來說明所有文件。這有幫助嗎? – CephBirk
如果我需要通過使用system.file()來查找csv文件列表,我該如何使這個更具編程性? – Jerry