0

問題は Google にとって難しいため、これは個人的な記録であり、2、3 年後に再び問題に遭遇すると思います。

次のようなスクリプトがあります。

library(FSelector)
table <- read.csv("somefile", header=0);
table <- table[,colSums(is.na(table))<nrow(table)]
imputed_table <- apply(table, 2, function(x){x <- replace(x, is.na(x), mean(x, na.rm=TRUE))});
nms <- colnames(table)
model <- information.gain(as.formula(paste(nms[length(nms)],"~.")), table)

実行時:

R --no-save < IG.R

これは正常に機能し、モデルを印刷します。

実行時:

Rscript ./IG.R

これはエラーでクラッシュします:

Error in .jarray(x) : could not find function "getClass"
Calls: information.gain ... read_model_frame_into_Weka -> read_data_into_Weka -> .jcall -> .jarray -> .Call
Execution halted

なぜこれが起こるのですか?

4

1 に答える 1

1

これは、FSelector が必要とする rJava ライブラリをデフォルトで Rscript がロードしないために発生しますが、FSelector がロードされたときに明らかにロードされません。対照的に、標準の「R」コマンドデフォルトで rJava をロードします。

これを解決するには、次を追加します。

library(rJava)

information.gain 呼び出しの前のスクリプトに。

于 2013-07-25T19:51:23.447 に答える