[解決済み] リストオブジェクトを'integer'型に強制する方法、Rでのエラー
2022-02-19 18:13:06
質問
データマイニングや機械学習のためにRを使用する初心者です。Naive Bayes Classifiedについて勉強しているときに、このエラーに遭遇しました。
<ブロッククオート"エラー in which((sapply(newdata[ind_factor], nlevels) != sapply(tables[ind_factor], : (list) object cannot be coerced to type 'integer'"
これは私のコードです。
data <- read.csv(file.choose(),header = T)
str(data)
set.seed(1234)
splitData <- sample(2,nrow(data),replace = T,prob = c(0.8,0.2))
train<-data[splitData == 1,]
test <- data[splitData == 2,]
mdl <- naive_bayes(admit ~ .,data = train)
predicted <- predict(mdl, train, type = 'prob')
最終行を実行すると、上記のようなエラーメッセージが表示されます。どなたか助けてください。 どうもありがとうございました。
解決方法は?
独立変数の1つが文字列または因子変数であり、すべて数値である必要があるようです。以下の私のおもちゃのデータセットを見てください。すべての変数を含めると同じエラーが発生します。しかし、var4(変数が文字列の場合)を取り除くと、動作します)。
変数を使用したい場合は、文字列変数を因子に変換し、因子を数値変数に変換することができます(因子の基礎となる値を取得することができます)。
library(naivebayes)
#data <- read.csv(file.choose(),header = T)
data <- data.frame(admit = sample(100, x=c(F,T), prob=c(.5,.5), replace=T),
var1 = sample(100, x=1:4, replace=T),
var2 = sample(100, x=1:3, replace=T),
var3 = sample(100, x=1:3, replace=T),
var4 = sample(100, x=c("s1", "s2"), replace=T))
str(data)
set.seed(1234)
splitData <- sample(2,nrow(data),replace = T,prob = c(0.8,0.2))
train<-data[splitData == 1,]
test <- data[splitData == 2,]
# Doesn't work
mdl <- naive_bayes(admit ~ .,data = train)
predicted <- predict(mdl, train, type = 'prob')
# Works
mdl <- naive_bayes(admit ~ var1 + var2 + var3,data = train)
predicted <- predict(mdl, train, type = 'prob')
# Convert string to factor then numeric
train$var4 <- as.numeric(as.factor(train$var4))
mdl <- naive_bayes(admit ~ .,data = train)
predicted <- predict(mdl, train, type = 'prob')
関連
-
[解決済み】エラー。Rの次元数が正しくない
-
[解決済み】値を置き換えようとすると、"データフレームの添え字の割り当てで欠損値は許可されない"
-
[解決済み】 colMeans(x, na.rm = TRUE) のエラー : KNN分類では 'x' は数値でなければならない
-
[解決済み】Rのメモリ管理/サイズn Mbのベクトルを割り当てられない
-
[解決済み】 file(filename, "r", encoding = encoding) : cannot open the connectionでエラーが発生する。
-
[解決済み] 因子を日付形式に変換するにはどうすればいいですか?
-
[解決済み】Rはプロットするが、アブラインを描画しない
-
[解決済み] リストオブジェクトに 'double' 型を強制する方法
-
[解決済み] 情報を損なわずに因数を整数値に変換するには?
-
[解決済み] Rでオブジェクト(変数)が定義されているかどうかを確認するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】基本 - T-検定 -> グループ化因子は正確に2水準でなければならない
-
[解決済み】エラー:私のコードで予期しないシンボル/入力/文字列定数/数値定数/SPECIALが発生した
-
[解決済み】エラー。Rの次元数が正しくない
-
[解決済み】rbind エラー。"名前が以前の名前と一致しない"
-
[解決済み】match.fun(FUN)でのエラーについて)
-
[解決済み】「Error in stripchart.default(x1, ...) : invalid plotting method」エラーを回避する方法は?
-
[解決済み】Rの整数オーバーフローとは何ですか、そしてどのように起こるのですか?
-
[解決済み】エラー - replacement has [x] rows, data has [y].
-
[解決済み】各グループの上位3要素を計算する際に「数値型、論理型、複合型でのみ可能な演算」を回避する方法
-
[解決済み】forループを実行すると「要因のレベルセットが異なる」というエラーが発生する