Заменить значение на основе условного в R - PullRequest
1 голос
/ 06 января 2020

У меня есть 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, я прошу вашей помощи, хахаха. Что я делаю не так? Заранее спасибо

1 Ответ

2 голосов
/ 06 января 2020

Мы можем просто выполнить задание, создав логический вектор. if/else не векторизован и ожидает входной вектор length 1

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