You need to enable JavaScript to run this app. 如何在R语言中对数据集逐行循环使用if else语句完成条件赋值
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言中对数据集逐行循环使用if else语句完成条件赋值

错误原因

if判断条件未指定当前循环行的下标,直接使用了完整的RawData$users列向量。R处理标量逻辑判断时只会提取向量的第一个元素计算,因此整列的赋值结果完全由第一行的users数值决定,才会出现全0的输出。

修复方案

方案1:修改原有for循环逻辑

仅需要在判断条件中加入行下标i即可:

for(i in 1:nrow(RawData)){
  RawData[i, 5] <-   
    if(RawData$users[i] <= 150) {
      1
    } else {
      0
    }
}
head(RawData)

方案2:使用R向量化操作(更推荐)

R原生支持向量化运算,不需要手动写循环即可完成整列判断,运算效率远高于for循环,尤其适合大数据集:

# 逻辑值TRUE/FALSE转为整数时自动对应1/0,直接赋值到第5列即可
RawData[, 5] <- as.integer(RawData$users <= 150)
head(RawData)

额外校验建议

如果修改代码后输出仍不符合预期,可先运行table(RawData$users <= 150)查看判断结果的分布,确认是否存在原始数据中所有users值均大于150的情况。


内容的提问来源于stack exchange,提问作者arhomberg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 15:15:01