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>
Вы неправильно вкладываете свои ifelse вызовы, но, чтобы полностью этого избежать, вы можете захотеть использовать case_when из пакета dplyr:
ifelse
case_when
dplyr
tod = function(x) { case_when( x > 5 && x < 12 ~ 1, x > 16 && x < 20 ~ 2, TRUE ~ 3 ) }
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)
x > 5 && x < 12
1
ifelse( x > 16 && x < 20, 2, 3)
С , 3 вы дали 4-й аргумент своему первому ifelse(), что вызвало ошибку
, 3
ifelse()