首页 > 解决方案 > 使用 else if 填充数据框

问题描述

我正在尝试使用 R 自动化流程,以便可以使用新数据快速完成。我有一个带有空标签列的数据框,根据第 1 列中值的大小,它可以有 4 个标签。

我目前有这个

testdata <- as.data.frame(document)
COL1 <- testdata$COL1
Label <- testdata$Label

for(i in 1:length(COL1)){
  if(i > 25){
    Label <- "Label 1"
  } else if(i <= 25){
    Label <- "Label 2"
  } else if(i <= 15){
    Label <- "Label 3"
  } else if (i < 7){
    Label <-" Label 4"
  }
}

我遇到的问题是整个列都填写为“标签 1”(i > 25 数据标签),无论我将它们放入哪个顺序,它们都填写为“标签 1”。

我假设 i > 25 语句有错误,但我看不到它。

谢谢

标签: rdataframeif-statement

解决方案


也许避免使用循环会使其更安全且不易出错?

testdata$Label[COL1 > 0] = 'Label 4'
testdata$Label[COL1 > 6] = 'Label 3'
testdata$Label[COL1 > 15] = 'Label 2'
testdata$Label[COL1 > 25] = 'Label 1'
``

推荐阅读