3

Ruby プロジェクトでは、R パッケージによるいくつかの統計を処理するために OpenCPU サーバーが必要です。OpenCPU には JSON REST API があるので、Ruby を使って簡単にフックして R と通信できます。

これらのパッケージの 1 つに、(少なくとも私にとっては) 奇妙な構文があります。

add <- function(.argument1, .argument2) {
  return(.argument1 + .argument2)
}

したがって、これは単なる例であり、実際の機能ではありません。私が変だと思ったのは、パラメータの前のポイントです。それらの点を削除することを提案したとき、パッケージの開発者は、IDE (R-Studio) の変数の概要から変数を非表示にすることを意図していると述べました。彼は、私たちが呼ぶパラメーターを非公開にするか、少なくとも何らかの形でスコープを設定したかったように思えます。R のこの機能を説明するためにインターネットを検索しましたが、何も見つかりませんでした。

実際の問題は、Ruby を使用し、Ruby がデータを JSON に変換して OpenCPU に送信することです。OpenCPU は適切なパッケージ/関数を検索し、引数を渡して実行します。その後、JSON 応答を行う OpenCPU に戻ります。Ruby の >1.9 Hash 構文は次のようになります。

{ argument1: 4, argument2: 3 }.to_json
# => { "argument1": 4, "argument2": 3 }

パッケージの引数によって強制される old の代わりに:

{ ".argument1" => 4, ".argument2" => 3 }.to_json
# => { ".argument1": 4, ".argument2": 3 }

したがって、R 開発者にドットを使用しないよう説得するための議論を必死に探したところ、私の質問はまだ答えられていませんでした: パラメータの前にあるこのポイントは R で実際の機能を持っているのでしょうか、それとも変数を除外するための単なるハックですか? IDE?

4

1 に答える 1

2

lsその理由は、ポイントで始まるオブジェクトを返さない Rの関数のデフォルトの動作にあることがわかると思います。これは、次のall.namesパラメーターで変更できます。

all.names論理値。TRUE の場合、すべてのオブジェクト名が返されます。FALSE の場合、a で始まる名前。は省略します。

.Machineより技術的な関数や変数がこのように「隠されている」ことは非常に一般的.Optionsです.Fortran.dynLibs

于 2014-04-25T11:17:33.333 に答える