問題タブ [r-package]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - Fortran ライブラリを呼び出す R パッケージの作成
Fortran サブルーチンを呼び出す R パッケージを作成しようとしています。一連のファイルとディレクトリを自動的に作成する Rstudio パッケージ テンプレートを使用しています。
私は./R/
単一のファイル、Fpi.R を持っています
./src/
私はFpi.f90を持っています
rstudio が生成する一般的な DESCRIPTION ファイルと NAMESPACE ファイルもあります。
ライブラリをビルドしてロードできますが、使用しようとすると次のエラーが発生します。
どうすればこれを修正できますか? ありがとう!
r - Windows上のFortranモジュールを含むRパッケージ? `__stack_chk_fail' への未定義の参照
Fortran モジュールを使用する R ライブラリを作成しました。Linuxではすべてが魅力のように機能します。
今、私はそれをWindowsで動作させようとしています。Windows コンピューターでgit リポジトリのクローンbuild and reload
を作成しました。Rstudio でボタンを押すと、次のエラーが表示されます。
私は何が欠けていますか?
この投稿で推奨されているように、追加しまし-fno-stack-protector -lssp
たが、役に立ちませんでした。追加する場所を間違えたのではないでしょうか?
私も手作業でやってみましたが、これらのエラーが発生しました:
@cdeterman の指示に従って、次のことを行いました。
次の行で作成
Makevars.win
しましたsrc
:PKG_FCFLAGS="-fno-stack-protector"
次に、NAMESPACE の useDynLin(Fpi) を useDynLib(MyPi) に変更しました。
これは私が得るものです:
r - RパッケージがShinyでユーザー変数を書き込むのに最適な場所は?
ユーザーが Shiny アプリ内から認証する Google API からデータをインポートするパッケージを作成中です。
httr
Google 検証に使用するパッケージを変更しています。このパッケージは、スクリプトの先頭にある環境でユーザーの状態を保持します。
これはシャイニーにとって良い考えですか?このような変数をパッケージ関数の外部で裸に設定しても問題ないかどうか疑問に思っています。
しかし、.state
関数内で環境を宣言しようとすると、Shiny アプリはそれを見つけることができません。関数にも入れてみました.onLoad
が、それもシャイニーでは利用できませんでした。
パッケージのスクリプトの先頭にそのまま残しても大丈夫ですか、それともシャイニーが見ることができる「より良い」方法はありますか?
r - gfortran の代わりに mpif90 を使用するように Rstudio に指示する
Fortran を使用する R パッケージの作成方法を学ぶために、モンテカルロ シミュレーションで Pi を計算する簡単なパッケージを作成しました。現在、Fortran コードを MPI と並列化しようとしています。
use MPI
Fortran コードに追加して Rstudio のボタンをクリックするBuild and Reload
と、次のエラーが発生します。
問題は、Rstudio が mpi90 の代わりに gfortran を使用してコンパイルしようとしていることだと思います。この投稿に従って、非常に基本的な Hello World を実行できますが、コードを次のようにコンパイルします。mpif90 -fpic -shared -o test.so test.f90
Rstudio にmpif90 -fpic -shared
の代わりに使用するように指示するにはどうすればよいgfortran
ですか?
これを追加しましたsrc/Makevars
これは私が得るものです:
r - setkey() R CMD チェックに関するメモを生成 - グローバル変数のバインディングが表示されない
R パッケージを作成し、CRAN に提出しました。CMD チェック出力 1 注:
楽しい: グローバル変数 'id' の目に見えるバインディングがありません
CRAN は、私がそれを修正することを提案しました。
fun() (私の関数の 1 つ) は、別のソフトウェアによって作成されたファイルを読み取るためのカスタム インポートです。これらのファイルは非常に大きなデータセットです。したがって、インポートを最適化しているので、パフォーマンスを向上させるだけでなく、foverlaps() などの後続の関数を実行するために必要な data.table と set key を使用します。
私は使用しています:
data.table::setDT(dataImport)
data.table::setkey(dataImport, id)
setkey() がこのメモを作成するのはなぜですか?
メモを作成せずにキーを設定するにはどうすればよいですか?
次の QA ( data.table にキーを設定する目的は何ですか? ) は、setkey() を理解するのに非常に役立ちますが、これも data.table のドキュメントも、これが発生する手がかり (私が見つけたもの) を提供していないようです。特定の問題。ありがとうございました
更新 - この問題に直面している機能の要旨を以下に示します。
readoqcsv <- function(x) {
dataImport <- utils::read.table(file = x,
header = TRUE,
sep = "," ,
dec = "." ,
colClasses = c("character",
"integer",
"character",
"character",
"integer",
"NULL",
"NULL",
"NULL",
"integer",
"NULL",
"NULL",
"NULL",
"NULL",
"factor",
"NULL",
"NULL",
"NULL",
"NULL",
"NULL"),
comment.char = "")
dataImport$session_finished <- strptime(dataImport$session_finished,"%m/%d/%y %H:%M")
dataImport$id <- c(1:nrow(dataImport))
以下は、(実行された場合)注を引き起こす行です:
# data.table::setkey(dataImport, id)
return(dataImport)
}
r - 私のパッケージ関数が他の非エクスポート タグ付き関数を見つけられないのはなぜですか?
Hadley Wickham の素晴らしい本http://r-pkgs.had.co.nz/のほとんどを読みましたが、パッケージ内の関数が他のエクスポートされていない関数を見つけられない理由について混乱しています。
たとえば、私は持っています
クリーンな環境でこれを実行してパッケージをロードすると、エラーが発生します。
何が問題で、どうすれば修正できますか? 内部関数は、パッケージ内の他のすべての関数で常に使用できると思いましたか? それが機能するのは、すべての機能をロードするまでではありませんdevtools::load_all(".")
。
r - R パッケージのビネットで使用される画像を保存する正しいフォルダーはどれですか?
Rパッケージのビネットを書いています。PDFビネットを生成する.Rmdファイルに.jpg画像を含めたいです。問題は、この画像をどこに保存すればよいかということです。
私はパッケージを使用してdevtools
ビネットknitr
を生成しています(@hadley book linkからのアドバイスに従います)。したがって、パッケージ構造にフォルダー vignettes があります。そこにファイルを含めるだけですか?または、ビネットで使用される外部データについて提案されているように、 'inst/images'内の新しいフォルダーに画像を含める必要があります(@hadley: linkによっても推奨されています)。
ご提案いただきありがとうございます。乾杯
r - Rパッケージ機能のファミリー所属へのアクセス方法
最初の R パッケージを作成しようとしています。Google で検索しましたが、私の質問に固有のものは何も出てきませんでした。
roxygenのマニュアルには、
@family ファミリ名 ファミリ内のすべての関数間の相互参照を自動的に追加します。関数は複数のファミリに属することができます。
所属する関数ファミリにアクセスするにはどうすればよいですか? 追加した後のドキュメントには@family text
何も表示されません...