R programming エラー集

Rstats

Rprogrammingにおけるエラー集とその対応を集めています。
エラーは英語で検索すれば解決することが殆どなのですが、日本語話者の方にもスムーズに解決できるようにエラー集を集めてみました。
自分が躓いて来た道が滑らかになりますように…。

・エラー: $ operator is invalid for atomic vectors

ベクトル表記なので先に進めません
データ型が原因の事が多く、data.frame()関数などを使用してデータ型を変更しましょう

・gowerDind(as.matrix(data.x), as.matrix(data.y), weights[weightind], でエラー:
関数 ’Rcpp_precious_remove’はパッケージ’Rcpp’では提供されていません

こちらは多重代入法の一種であるkNN imputationを用いる時に出たエラーです
VIM::kNNの関数を用いる際にこのようなエラー表記が出ました
この場合はRのバージョン、もしくはRcppパッケージのバージョンの問題があります
自分の場合はRcppパッケージのreinstallで解決できました

この場合に限らず、対象パッケージに提供されていない、という場合にはバージョンの違いが隠れていることが多いので、R自体またはパッケージのアップデートを行いましょう

replace==FALSE, but there are more (weighted) treated obs than control obs. Some treated obs will not be matched. You may want to estimate ATC instead.

コントロール群に対して治療群が多過ぎます
このエラーは以下のような場合で起きます
治療群(=1)が5万人に対してコントロール群(=0)が3000人と少ないです

R propensity score matching
R propensity score matching

このような場合に治療群の母集団を正確に反映する可能性が高まるため、replace==TRUEにしてコントロール群を複数回使う選択肢があります

Matching::Match(Tr =… でエラー:
Treatment indicator (‘Tr’) must be a logical variable—i.e., TRUE (1) or FALSE (0)

Tr(治療群)が1,0の論理変数ではありません
何故かas.factorが通用せず、integer型から変換できませんでした ※ 未解決
ただ言われたとおりにas.logicalで論理型に変更することでクリアできました

・エラー: サイズ 17.8 Gb のベクトルを割り当てることができません
追加情報: 警告メッセージ:
Dropped unused factor level(s) in dependent variable:

kNNimputation(VIM::kNN)を使用した際に出現しました
kNNimputationはK近傍法と言われ、簡単に言うとベクトル距離が近い集団を集めてその値を代入する多重代入法の一種です
多数のファクター型変数の存在によりベクトル距離が離れてしまった事が原因のエラーと考えられます
ファクター型へ未分類な行がある、IDが途中行に入ってしまっている(1行目の場合は自動認識してくれます)などの原因が考えられるためそれに対処しましょう

・error:1407742E:SSL

GitHubのセキュリティ強化のためのアップデートにより起きています。GitHubのバージョンアップデートをしましょう
自分の場合はRからGitHubのコードを呼びだす時に出現したのでコードをべた貼りして解決しました

・eval(family$initialize) でエラー: y values must be 0 <= y <= 1

ロジスティック回帰分析で出ました
目的変数yが0から1の値に収まっていないのでエラー値がないかを見直してみましょう

・weights * y でエラー: 二項演算子の引数が数値ではありません

ロジスティック回帰分析(binomial)において目的変数yがcharacterの際に出ました
数値型、factor型に変更することで改善しました

・group_byからのsummarise関数を適応する際にID列を認識しない

data = data.frame(aa = c(“a”, “b”, “c”, “a”), bb = c(“aaa”, “aaa”, “aba”, “ccc”))
data %>% group_by(aa) %>% summarise(sumtxt = paste0(bb, collapse = “,”))
sumtxt
1 aaa,aaa,aba,ccc

group_by summarise 関数 R エラー ID paste

・列同士を結合し、各行に新たな列を生成したい場合にやりがちなミス

本来は区切りを指定する際にsep=””を使わねばなりません
良く調べずにcollapase=””で区切りを指定してしまうと全てのベクトルを結合することになるので
結合する列の全行の中身のデータが結合されて排出されます
とてつもなく重いデータとなるのでRといえど下手すると落ちるレベルです
間違えないようにしましょう

paste 上手くいかない error

コメント

タイトルとURLをコピーしました