当y是数据帧且k = 2时,下标超出FNN :: knn.reg()的范围

时间:2017-10-02 07:05:33

标签: r knn

我正在尝试使用Sub CropPictures() Application.ScreenUpdating = False Dim shp As Shape Dim sngMemoLeft As Single Dim sngMemoTop As Single Dim i As Integer, j As Integer i = 0: j = 0 For Each shp In ActiveSheet.Shapes i = i + 1 With shp If .Type = 13 Or .Type = 15 Then j = j + 1 sngMemoLeft = .Left sngMemoTop = .Top With .PictureFormat .CropLeft = 20 .CropTop = 195 .CropBottom = 27 .CropRight = 565 End With With shp .Height = 20 .Width = 195 End With .Left = sngMemoLeft .Top = sngMemoTop End If End With Next shp End Sub 包中的knn.reg()进行预测,但我遇到了一个异常错误。当FNN作为数据框传递给y并且我尝试使用2个最近邻居进行预测时,我收到以下错误消息:

knn.reg()

但是,当Error in as.matrix(x)[i] : subscript out of bounds是数据框且y是除2以外的任何数字时,该函数可以正常工作。我已经发现将k作为向量传递适用于y(并且还会产生与k = 2是数据框时相同的预测),但是我是不确定为什么当y是数据框时错误会一直弹出。

此处的代码示例:

y

1 个答案:

答案 0 :(得分:1)

@ rossdrucker9我只有在将knn.reg放在for循环中时才遇到相同的错误。错误出现在第二个循环中。我花了半天时间在FNN::knn.reg上以获得最佳的k,因为我给了我比插入符号knn更好的结果。但是,插入符号包中的knn并没有出现超出范围的错误。