【问题标题】:Error in xj[i] : invalid subscript type 'list'xj[i] 中的错误:无效的下标类型“列表”
【发布时间】:2016-02-21 06:53:40
【问题描述】:

我尝试将数据(银行)拆分为训练数据和测试数据。但不知怎的,我在下面遇到了错误。我该如何解决这个问题?

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

【问题讨论】:

  • 也许使用-(1:100) 而不是!train - 目前尚不清楚您要在那里做什么。您可能还对split 函数感兴趣。
  • 它给了我同样的错误。银行数据包含 200 行,所以我想拆分两部分并将我的模型测试到测试子集中。

标签: r


【解决方案1】:

问题出在subset=train。根据?glmsubset 应该是与原始数据集的子集相反的向量:

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)

【讨论】:

  • 我解决了第一个问题。但是我尝试了第二个,它会产生错误。 >table(glm.pred,Status.test)##classification on training data 表中的错误(glm.pred, Status.test) : 所有参数必须具有相同的长度 > length(Status.test);length(glm.pred ) [1] 68 [1] 60
  • @K.heer,为了将预测与实际进行比较,您可以使用table(glm.pred,test$Status),假设bank 数据集中有一个Status 列作为响应变量。
【解决方案2】:

通常,您可以通过执行以下操作来实现您的要求: 假设列“响应”是观察列:

samples=1:100
train = bank[samples, ]
test = bank[-samples,]
Status.test =bank[samples,'response']

顺便说一句,我建议使用sample() 函数来随机抽取样本进行训练和测试。像这样:

samples=sample(nrow(bank), 0.8*nrow(bank))
train = bank[samples, ]
test = bank[-samples,]
Status.test =bank[samples,'response']

【讨论】:

    【解决方案3】:

    如果您将训练数据设置为:

    data[1: 100,]
    

    然后在lm() 函数中使用参数:

    data = bank[train,]
    

    或者,您可以将火车设置为:

    seq(1: 100)
    

    作为索引序列,需要在

    中使用
    lm(): data = bank, subset = train
    

    【讨论】:

      猜你喜欢
      • 2015-01-15
      • 2017-10-05
      • 1970-01-01
      • 2015-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-27
      • 2012-01-06
      相关资源
      最近更新 更多