r - 使用 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 语句有错误,但我看不到它。
谢谢
解决方案
也许避免使用循环会使其更安全且不易出错?
testdata$Label[COL1 > 0] = 'Label 4'
testdata$Label[COL1 > 6] = 'Label 3'
testdata$Label[COL1 > 15] = 'Label 2'
testdata$Label[COL1 > 25] = 'Label 1'
``
推荐阅读
- blazor - 如何从定义的类名列表中删除特定类
- android - 如何完全重命名 Android 应用程序?
- javascript - 如何删除 React 中包含子组件的功能性记忆组件的渲染器?
- mysql - 如何在 MARIADB/MYSQL 中为函数/过程声明表变量?
- azure - 从 azure webhook 发送安全数据的最佳实践
- javascript - 为什么我的 Vue 方法中的变量没有根据我在多个元素上设置的 v-click 指令进行更新?
- php - 为什么更新后phpinfo版本仍然停留在7.1?
- azure-blob-storage - 枚举容器中的所有文件并将每个文件复制到 foreach
- c# - 为什么'else'部分中的括号会创建一个无限循环,反之亦然?
- .net - 正则表达式 - 转义字符