タイトル通りのエラーが出ました
Error: object 'Cdqrls' not found
私はdevtools
Rパッケージの構築に使用し、現在のパッケージの1つの関数を使用しました
.Call(Cdqrls, x[, id1, drop=FALSE] * w, w * z, epsilon)
また、次のようなlm.c
ファイルがsrc
フォルダーに含まれます。
...
SEXP Cdqrls(SEXP x, SEXP y, SEXP tol)
{
SEXP ans, ansnames;
SEXP qr, coefficients, residuals, effects, pivot, qraux;
int n, ny = 0, p, rank, nprotect = 4, pivoted = 0;
double rtol = asReal(tol), *work;
...
R ソース ファイルから直接コピーします。で使用load_all()
するとdevtools
、src/ の共有オブジェクトがコンパイルされ (うまく動作することを確認しました)、新しいファイル:lm.o
とMyPkgName.so
. しかし、のwikiからdevtools
、私はそれを見つけました
load_all ignores the package NAMESPACE
正常に動作している場合、いくつかの機能を実行することで、ファイルを更新して. あれは正しいですか?そうすればエラーが消えると思います...どんな提案でも大歓迎です!NAMESPACE
useDynLib(MyPkgName, Cdqrls)
アップデート
@mnelとこの投稿によると、使用@useDynLib
するとうまくいくようです。ただし、私が使用した機能は文書化されておらず、使用した.Call()
機能がいくつかある.Call
ため、エンドユーザーには使用されないため、個人的には文書化したくありません。では、どこに置こ@useDynLib
うか?