0

Analytics でクラスの宿題を完了しようとしています。分類にはkknn(K最近傍)関数を使用しています。とにかく、 for ループは、私が意図しているように i 値を反復していないようです:

最初にリストを初期化し、二重括弧表記を使用して追加しようとしましたが、グローバル環境で、リストに項目が 1 つしかないことに気付きました。$ 表記を使用してリストを追加しようとしましたが、同じ結果になりました。次に、データ フレームを開始し、 rbind を使用して for ループの各反復でフレームを拡張しようとしました。私のデータフレームにはまだ1つのアイテムしかありません。

klist = list()

for(i in 1:654)
  {CCmodel_knn <- kknn(V11~V1+V2+V3+V4+V5+V6+V7+V8+V9+V10, CCdata[-i,],CCdata[i,],k=10,distance = 2,kernel ="optimal",scale = TRUE)

fittedValues <- fitted.values(CCmodel_knn)

klist$fittedValues <- i}

そして私は試しましたklist[[fittedValues]] <- i

データフレームに使用したコードは次のとおりです。

kframe <- data.frame(ivalue = i, FV = fittedValues)

for(i in 1:654)
  {CCmodel_knn <- kknn(V11~V1+V2+V3+V4+V5+V6+V7+V8+V9+V10, CCdata[-i,],CCdata[i,],k=10,distance = 2,kernel ="optimal",scale = TRUE)

fittedValues <- fitted.values(CCmodel_knn)

rbind(kframe, i, fittedValues)}

for ループをリストに追加する方法について何か提案はありますか? ご覧のとおり、私の範囲は i で 1:654 なので、654 行のデータフレーム/リストを期待しています。

4

1 に答える 1

0

あなたのループは毎回同じ変数に書き込んでいます。それをリストに追加し、最後にリスト全体を処理する必要があります。

これを試して:

klist = list()

for(i in 1:654) 
{
  CCmodel_knn <- kknn(V11 ~ V1 + V2 + V3 + V4 + V5 + V6 + V7 + V8 + V9 + V10, 
                      CCdata[-i,], CCdata[i,], k = 10, distance = 2, 
                      kernel = "optimal", scale = TRUE)

  klist[[i]] <- fitted.values(CCmodel_knn)
}

kframe <- do.call("rbind", klist)

その後、する必要があるかもしれません

kframe <- as.data.frame(kframe)
于 2020-01-15T09:41:40.730 に答える