readData()
というメソッドを含む1つのパッケージ(たとえばtestpackage1
)があります。別のパッケージからデータをインポートする方法
このメソッドは、testpackage1
のデータフォルダに配置されたtest.data.rda
ファイルを読み込み、いくつかの操作の後にデータフレームを返します。
これはtestpackage1
で唯一のRファイルです:initPackage
メソッドを呼び出す
#' Reads data and transforms it
#'
#' @return a data.frame
#' @export
#'
#' @examples my.df <- readData()
readData <- function() {
return(subset(test.data, x < 50))
}
initPackage <- function() {
test.data <- data.frame(x = seq(1, 100),
y = seq(101, 200))
devtools::use_data(test.data, overwrite = TRUE)
}
は、データフレームを作成し、データフォルダ内の.rdaファイルとして保存します。
今、私はまた、唯一のRファイルがあるtestpackage2
という名前の第二のパッケージ、作成している:私は新鮮Rセッションを開始し、入力された後、両方のパッケージを構築し
#' Gets the data
#'
#' @import testpackage1
#' @export
#'
#' @examples hello()
hello <- function() {
print(testpackage1::readData())
}
を:
> library(testpackage2)
> hello()
しかし、私はこのエラーがあります:
Error in subset(test.data, x < 50) : object 'test.data' not found
4. subset(test.data, x < 50) at hello.R#8
3. testpackage1::readData()
2. print(testpackage1::readData()) at hello.R#8
1. hello()
私はrequire(testpackage1)
を入力してください鉱石の呼び出し方法hello()
、それは動作します。
しかし、私はロードtestpackage2
が自動的にその依存関係を読み込んでいると思った。 hello()
関数にrequire(testpackage1)
を追加することができますが、@import
ステートメントでは冗長に見えます。
さらに、readData()
は正しくインポートされていますが、なぜデータはありませんか?私は何とかデータをエクスポートする必要がありますか?