我希望对 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。为什么?算法非常简单,这真的让我很困扰。
另外,有没有更优雅的方法来做到这一点?