【问题标题】:conditional changes based on value of other column基于其他列的值的条件更改
【发布时间】:2019-08-20 21:54:39
【问题描述】:

当 EVID 列等于 1 时,我试图将 CMT 值从 2 更改为 1,基本上我想要做的就是这样

当 NEW$EVID==1 然后 新$CMT== 新$CMT-1

但它不起作用

【问题讨论】:

标签: r tidyverse data-manipulation


【解决方案1】:

你可以使用ifelse:

  NEW$CMT <- ifelse( NEW$EVID==1,  NEW$CMT-1, NEW$CMT)

或者你可以使用布尔算术:

  NEW$CMT <-  NEW$CMT -( NEW$EVID==1)*1

您还应该意识到 R 中的“==”运算符不进行赋值。而且使用all.equal 通常更安全,除非您确定您的值是整数。考虑这个结果:

seq(0,1, by=0.1) == (0:10)/10
 [1]  TRUE  TRUE  TRUE FALSE  TRUE  TRUE FALSE FALSE  TRUE  TRUE  TRUE

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-15
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 2020-11-01
    相关资源
    最近更新 更多