簡體   English   中英

基於 R 中的條件替換值

[英]Replace value based on a conditional in R

我有一個帶有一些年齡變量的 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 編程的初學者,我請求您的幫助哈哈哈我做錯了什么? 提前致謝

我們可以通過創建一個邏輯向量來進行分配。 if/else未向量化,它需要length 1 的輸入向量

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM