2017-02-22 11 views
1

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()は正しくインポートされていますが、なぜデータはありませんか?私は何とかデータをエクスポートする必要がありますか?

答えて

0

ない、これはバグや機能ですが、私は次のようにtestpackage1readData()方法を変更することで働かせたかどうかわから:

#' Reads data and transforms it 
#' 
#' @return a data.frame 
#' @export 
#' 
#' @examples my.df <- readData 
readData <- function() { 
    return(subset(testpackage1::test.data, x < 50)) 
} 

testpackage1::test.data

関連する問題