Ошибка в ifelse неиспользованном аргументе (3) в функции в R-программировании - PullRequest
0 голосов
/ 24 сентября 2019
tod = function(x) { 
  ifelse(x > 5 && x < 12, 1, ifelse( x > 16 && x < 20, 2, 3), 3)
}
df2$day = tod(df2$t)

Ошибка в ifelse (x> 5 && x <12, 1, ifelse (x> 16 && x <20, 2, 3), 3): неиспользованный аргумент (3) </p>

Ответы [ 2 ]

1 голос
/ 24 сентября 2019

Вы неправильно вкладываете свои ifelse вызовы, но, чтобы полностью этого избежать, вы можете захотеть использовать case_when из пакета dplyr:

tod = function(x) {
    case_when(
        x > 5 && x < 12  ~ 1,
        x > 16 && x < 20 ~ 2,
        TRUE             ~ 3
    )
}
0 голосов
/ 24 сентября 2019
ifelse(x > 5 && x < 12, 1, ifelse( x > 16 && x < 20, 2, 3))

Сначала вы ожидаете 3 аргумента.1-й: x > 5 && x < 12 2-й: 1 3-й: ifelse( x > 16 && x < 20, 2, 3)

С , 3 вы дали 4-й аргумент своему первому ifelse(), что вызвало ошибку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...