代码之家  ›  专栏  ›  技术社区  ›  Lmm

ifelse函数帮助:如果因子为true,则值为NA[重复]

  •  -1
  • Lmm  · 技术社区  · 7 年前

    我有一个数据框:

    我的数据:

             Date  error  variable  value
    1  2016-06-16     NA C13uptake     NA
    2  2016-06-17 0.0004 C13uptake 0.0065
    3  2016-06-18     NA C13uptake     NA
    4  2016-06-19 0.0085 C13uptake 0.0625
    5  2016-06-20 0.0106 C13uptake 0.0890
    6  2016-06-21 0.0179 C13uptake 0.1825
    7  2016-06-22     NA C13uptake     NA
    8  2016-06-23 0.0065 C13uptake 0.1299
    9  2016-06-16     NA     cal5C     NA
    10 2016-06-17 0.0006     cal5C 0.0046
    11 2016-06-18     NA     cal5C     NA
    12 2016-06-19 0.0070     cal5C 0.0820
    13 2016-06-20     NA     cal5C     NA
    14 2016-06-21 0.0129     cal5C 0.1600
    15 2016-06-22     NA     cal5C     NA
    16 2016-06-23     NA     cal5C     NA
    17 2016-06-24 0.0170     cal5C 0.1500
    

    我想把变量cal5C的所有错误转换为NA

    i、 e.如果因子(变量)为cal5C,则其误差为NA。

    我很确定这是一个简单的ifelse函数,但这不是我经常使用的函数。

    我想可能是下面这样的情况,但这是行不通的。

    mydata$error <- ifelse(is.na(mydata$error) | mydata$variable %in% "cal5C")
    

    感谢您的帮助。

    1 回复  |  直到 7 年前
        1
  •  0
  •   G5W    7 年前

    所以这个问题不是没有答案的。。。

    您不需要ifelse,只需索引到要设置的数组元素即可。

    mydata$error[mydata$variable == "cla5C"] = NA