I tried to split the data(bank) into training data and test data. But I somehow got an error below.How can I solve this problem?
train = bank[1:100, ]
test = bank[!train,]
Status.test =Status[!train]
glm.fit=glm(Status~Length+Right+Bottom+Top+Diagonal,data=bank,family=binomial,subset=train)
#Error in xj[i] : invalid subscript type 'list'
glm.probs=predict(glm.fit,test,type="response")
glm.pred=rep("genuine",100)
glm.pred[glm.probs>.5]="counterfeit"
table(glm.pred,test)##classification on training data
#Error in table(glm.pred, test) : all arguments must have the same length
The issue is in subset=train
. According to the ?glm
. the subset
should be a vector as oppose to a subset of original dataset:
subset an optional vector specifying a subset of observations to be used in the fitting process.
Hence, you may need to change the code to:
glm.fit=glm(Status~Length+Right+Bottom+Top+Diagonal,data=train,family=binomial)
or
glm.fit=glm(Status~Length+Right+Bottom+Top+Diagonal,data=bank,family=binomial,subset=1:100)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With