You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R ifelse语句忽略输入问题:按Plot列奇偶性生成Transtyp列报错如何解决

问题原因

你编写的判断条件语法不符合R的运算规则:1 | 3 | 5 | 7中的|是逻辑或运算符,R中所有非0数值都会被识别为逻辑值TRUE,因此该表达式的运算结果为TRUE,转换为数值等价于1,最终你的判断条件实际等价于Plot == 1,所以只有Plot为1时才会返回"2"。

正确实现方案

方案1:手动匹配指定奇数

适合你当前明确指定奇数范围为1、3、5、7的场景:

library(dplyr)
df %>% 
  mutate(
    Plot = as.numeric(Plot),
    Transtyp = ifelse(Plot %in% c(1, 3, 5, 7), "2", "5")
  ) -> df_t

方案2:取模运算判断奇偶

更通用的奇数判断写法,无需手动枚举所有奇数:

library(dplyr)
df %>% 
  mutate(
    Plot = as.numeric(Plot),
    Transtyp = ifelse(Plot %% 2 == 1, "2", "5")
  ) -> df_t

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 19:15:00