Как объединить результаты цикла for внутри функции в символьный вектор? - PullRequest
0 голосов
/ 19 декабря 2018
my_function <- function(A,B,C,D,E) {
for (event in c(A,B,C,D,E)){
    if (event %in% c(A,E)) print(paste0(event, "foo"))
    if (event %in% c(B,C,D)) print(paste0(event, "bar"))
  }
}

my_function(45, 34, 23, 213, 134)
[1] "45foo"
[1] "34bar"
[1] "23bar"
[1] "213bar"
[1] "134foo"

Функция возвращает 5 символьных векторов длины 1. Я хотел бы, чтобы функция возвращала один вектор длины 5 - в порядке, переданном в аргументах (A> B> C> D> E)

1 Ответ

0 голосов
/ 19 декабря 2018

Ваша функция фактически ничего не возвращает, она просто печатает операторы.Если вы хотите что-то вернуть, это вариант:

my_function <- function(A,B,C,D,E) {
  return(sapply(c(A,B,C,D,E),function(x){
    if(x %in% c(A,E)) return(paste0(x,"foo"))
    if(x %in% c(B,C,D)) return(paste0(x,"bar"))
  }))
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...