1

R のデータ フレームでこの単純な分類を実行したいと考えています。カテゴリは 1、2、3、4、および -1 です。この計算の結果をデータ フレームの新しい列に追加したいと考えています。「oldCol」は、データ フレームに既に存在する列の名前です。

DF$newCol <- apply(DF, 1, function(row) {
    if (row[["oldCol"]] > 10.0)
    {result1 <- 4.0}
    else if (row[["oldCol"]] > 2.0 && row[["oldCol"]] <= 10.0) 
    {result1 <- 3.0}
    else if (row[["oldCol"]] > 0.5 && row[["oldCol"]] <= 2.0) 
    {result1 <- 2.0}
    else if (row[["oldCol"]] > 0.0 && row[["oldCol"]] <= 0.5) 
    {result1 <- 1.0}
    else
    {result1 <- -1.0}
    return(result1)
})

私の問題: コードは新しい列を作成しますが、その値は正しくありません! この正確なコードでは、10 を超える数値はクラス 4 として正しく分類されますが、他のすべての行には -1 が含まれます。なんで?アルゴリズムは非常に単純なので、これは本当に気になります。

また、これを行うためのよりエレガントな方法はありますか?

4

2 に答える 2