【问题标题】:Replace value based on a conditional in R根据 R 中的条件替换值
【发布时间】:2020-04-24 08:28:11
【问题描述】:

我有一个带有一些年龄变量的 df,我想对其进行修改。

    DEATH       CITY    BIRTH    AGE      SEX
> 1 5092017     Acre    3031997   20    MASCULINO
> 2 11022017    Acre    9022017   202   MASCULINO
> 3 11022017    Acre    13071933  83    FEMININO
> 4 11022017    Acre    6022002   15    MASCULINO
> 5 11022017    Acre    2061966   50    FEMININO
> 6 11022017    Acre    28121946  70    FEMININO
> 7 10022017    Acre    4121955   61    MASCULINO
> 8 10022017    Acre    3101943   73    FEMININO
> 9 10022017    Acre    6022017   20    MASCULINO
> 10 9022017    Acre    14012017  226   FEMININO
> 11 9022017    Acre    20071931  85    FEMININO

这些带有 3 个字符的行代表生命的月 (3)、天 (2) 和小时 (1),我想将其值更改为 0,因为它们还没有完成 1 岁。

我尝试使用 if 条件,但它不起作用...

if((nchar(DO_concatenated$IDADE) == 3)&(funcaoidade(DO_concatenated$IDADE) <=3)){
  DO_concatenated$IDADE <- 0))
  }

“funcaoidade”是我创建的一个函数,只查看这些数字的第一个字符

 funcaoidade = function(x){
  substr(x, start = 1, stop = 1)
}

由于我是 R 编程的初学者,我请求你的帮助哈哈哈 我究竟做错了什么? 提前致谢

【问题讨论】:

    标签: r dataframe if-statement replace conditional-statements


    【解决方案1】:

    我们可以通过创建一个逻辑向量来进行赋值。 if/else 未矢量化,它需要输入矢量 length 1

    i1 <- nchar(DO_concatenated$IDADE) == 3)&(funcaoidade(DO_concatenated$IDADE<=3))
    DO_concatenated$IDADE[i1] <- 0
    

    【讨论】:

    • 非常感谢!!!我刚刚做了一些括号调整,效果很好;)
    猜你喜欢
    • 2021-04-13
    • 1970-01-01
    • 1970-01-01
    • 2019-01-02
    • 1970-01-01
    • 2017-09-17
    • 2022-01-19
    • 2018-09-26
    • 2021-08-31
    相关资源
    最近更新 更多