Кто должен определять значение для экземпляров T / F на входе функции R - PullRequest
1 голос
/ 13 мая 2019

Ниже я ожидаю, что функция выведет .25 для любого long = T и .5 для любого long = F. Итак, я ожидал получить вектор .25, .25, .25, .5, .25 в качестве вывода foo().

Мне интересно, как я могу добиться желаемого результата?

foo <- function(long = c(T, T, T, F, T)){

 r <- if(long)long[long] <- .25 else long[!long] <- .5
 r
 }
 ## Example of use:
foo()

1 Ответ

1 голос
/ 13 мая 2019

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

foo <- function(long = c(T, T, T, F, T)){

   ifelse(long, .25, .5)

  }

foo()
...