予期しない予測を生成しようとしていますが、次のコードを実行した後にこのメッセージが表示されます。Error: variable 'dummygen' was fitted with type "numeric" but type "factor" was supplied
データフレームのセットアップとクリーニングでエラーが発生しました。R
私はstr
を調べて、私が使用している2つの変数が数値であるかどうかを確認しました。私はここで狩りを行い、thisはやや関連性があるかもしれないと思っていますが、私は仕事の提案を得ることができませんでした。
これまでのコードは次のとおりです。
library(foreign)
library(plyr)
library(rvest)
library(stringi)
library(purrr)
library(XLConnect)
library(splitstackshape)
library(tidyr)
library(dplyr)
donner_raw <- read.csv("donner.txt", sep="\t", header = FALSE)
colnames(donner_raw) <- c("age_gen", "survive")
donner_raw <- separate(donner_raw, age_gen, into = c("age", "gender"), "(?<=\\d)(?=[A-Za-z])")
logit <- glm(survive ~ age + dummygen,family=binomial(link='logit'),data=donner_raw)
newlogit <- data.frame(age=seq(1,6, length=20), dummygen=("0"))
ooslogit <- predict.glm(logit, newlogit, se.fit=TRUE)
私がやったことがどこでうまくいかなかったのか分かりません。ここにはデータの再現可能な部分があります。
dput(droplevels(head(donner_raw)))
structure(list(age = structure(c(6L, 4L, 5L, 3L, 2L, 1L), .Label = c("13", "3", "4", "45", "6", "60"), class = "factor"), gender = c("M", "F", "F", "F", "F", "F"), dummygen = structure(c(2L, 1L, 1L, 1L, 1L, 1L), .Label = c("0", "1"), class = "factor")), .Names = c("age", "gender", "survive", "dummygen"), row.names = c(NA, 6L), class = "data.frame")
ちょうどそれを一致させるために予測データにおける変数のクラスを変更。 'as.numeric'を使うことができます。 'dput'には何か問題がありますが、クラスが' factor 'であることが分かります。クラスを変更するだけです。 –
@ SamMarshal私の答えを読んでください。 – joran
なぜ最後の投稿を削除してこれを再投稿しましたか? –