2017-11-28 6 views
0

私が書いたパッケージでdata.tablesをバックボーンとして使用したいと思います。パッケージ内でdata.tableを使用する - チェック時にエラーが発生する

私は::を使用するすべての時間をしたい(と[:=オペレーターとの合併症を避けるため)していないとして、私はすべてのDTを使用できるようにするための説明でインポートなどのDependsとしてdata.tableとしませ含ま直接機能します。

私はビルドする場合、パッケージのすべてが正常に動作しますが、(DTTest.Rcheck/00install.outからの)エラーに「チェック」の結果実行されている:

* installing *source* package ‘DTTest’ ... 
** R 
** preparing package for lazy loading 
** help 
*** installing help indices 
** building package indices 
** testing if installed package can be loaded 
Error : package ‘data.table’ required by ‘DTTest’ could not be found 
Error: loading failed 
Execution halted 
ERROR: loading failed 

このパッケージでのみ機能しますが、この

です
#' Creates a data.table 
#' 
#' @return a data.table 
#' @export 
#' 
#' @examples 
#' create_dt() 
create_dt <- function() { 
    dt <- data.table(x = 1:10) 
    dt[, x_2 := x^2] 
    return(dt[]) 
} 

説明にはDepends: data.tableが含まれています。それ以外の場合、ファイルは標準のRStudioの新しいパッケージファイルです。

あなたはここに全体のパッケージを見つけることができます。https://github.com/DavZim/DTTest

任意のアイデアをこの問題を解決する方法?

+0

'data.table :: data.table(x = 1:10)' – akrun

+0

を試したことがありますか?インポートにdata.tableを入れて、NAMESPACEにパッケージをインポートしてください。それが私のやり方であり、CRANで利用可能な私の1つのパッケージではうまくいきます。 – Roland

+0

@Ronaldそれはどんなパッケージですか?私はあなたの推薦をしてみましたが、それは動作しませんでした。(最新のgithubを参照してください) @akrun問題は ':= '演算子と他のdata.table演算に伴います。他のパッケージでは、私はそれをやるだけです。 – David

答えて

0

Rolandからのいくつかの有益なコメントの後、私は私の問題の解決策を見つけました。それは実際に私の.libPaths()に関連していて、コードではありませんでした。

パッケージRを確認すると、最初のライブラリ内のパッケージを.libPaths()で検索しようとしました。私は4つのパス(/usr/local/...,/usr/lib/R/site-library,/usr/lib/R/library/home/user/R/x86_64-pc-linux-gnu-library/3.4)を持っており、最後にはdata.tableがインストールされています。

解決策(この段階での回避策など)は、最初のものにdata.tableをインストールすることでした。

これを行うには、管理者権限(私の場合はsudo R)でRを実行し、install.packages("data.table", lib = .libPaths()[1])でdata.tableをインストールしました。

これで、チェックが正常に完了しました。

関連する問題