xj [i]出错:无效的下标类型'list'

K.h*_*eer 4 r

我试图将数据(银行)分成训练数据和测试数据.但我在某种程度上得到了一个错误.我怎么能解决这个问题?

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
Run Code Online (Sandbox Code Playgroud)

Six*_*.Hu 6

问题在于subset=train.根据?glm.所述subset应尽可能反对原始数据集的子集的矢量:

子集一个可选向量,指定要在拟合过程中使用的观察子集.

因此,您可能需要将代码更改为: glm.fit=glm(Status~Length+Right+Bottom+Top+Diagonal,data=train,family=binomial)

要么

glm.fit=glm(Status~Length+Right+Bottom+Top+Diagonal,data=bank,family=binomial,subset=1:100)