.when
をスクリプトのどこかで使用しようとしているようですが、.when
のような方法はありません。
ライブラリのいずれか(R
?)が、使用しているドキュメントより古いバージョンであるか、最初に.when
コールが存在しなかった可能性があります。
これを修正する最も簡単な方法は、コード内で.when
が呼び出されている場所を検索してから、代わりに使用できる別の方法があるかどうか、または新しいライブラリに更新する必要があるかどうかを確認することです。
各ファイルを開くときと、テーブルに読み込むときの間に、コンソールに出力するデバッグコードを少し追加すると、少なくとも、コードがどれほど遠くまで到達したかを知ることができます。エラーが呼び出される場合、あなたはここにrJava
のソースを見てみることができます上の参考のために
: https://github.com/cran/rJava/blob/master/R/reflection.R
rJaveは、機能を探すためにしようとしたときに具体的に最後のelseブロックで自分の誤りに注意しますが、見つけることができません:
### syntactic sugar to allow object$field and object$methods(...)
### first attempts to find a field of that name and then a method
._jobjRef_dollar <- function(x, name) {
if (hasField(x, name)){
.jfield(x, , name)
} else if(hasJavaMethod(x, name)) {
function(...) .jrcall(x, name, ...)
} else if(hasClass(x, name)) {
cl <- .jcall(x, "Ljava/lang/Class;", "getClass")
inner.cl <- .jcall("RJavaTools", "Ljava/lang/Class;", "getClass", cl, name, FALSE)
new("jclassName", name=.jcall(inner.cl, "S", "getName"), jobj=inner.cl)
} else if(is.character(name) && length(name) == 1L && name == "length" && isJavaArray(x)){
length(x)
} else {
stop(sprintf("no field, method or inner class called '%s' ", name))
}
}
"*私は関数を投稿する前に" - 常に関連情報を含めてください。必要に応じてそれをより魅力的なものにします(上部にTL; DRセクションを含む)。 –