R语言使用条件语句为dataframe列小于0的值加360出错
问题原因
你的赋值语句逻辑存在错误:df$val[df$val < 0] <- + 360的写法等价于直接将筛选出的小于0的数值批量赋值为360,没有调用原有数值做累加计算。
解决方案
方法1:修改原有索引赋值写法
补充赋值右侧的原数值引用即可:
df$val[df$val < 0] <- df$val[df$val < 0] + 360
方法2:使用ifelse向量化写法
代码更简洁,无需重复写筛选条件:
df$val <- ifelse(df$val < 0, df$val + 360, df$val)
验证结果
处理后数据框的val列结果为 180, 210, 170, 180,符合预期需求。
内容的提问来源于stack exchange,提问作者Phil Roberts
相关产品推荐
相关产品推荐

