Как назначить из функции, которая возвращает более одного значения?
Все еще пытаясь разобраться в логике R ... каков "лучший" способ распаковать (на LHS) результаты функции, возвращающей несколько значений?
Я не могу сделать это, по-видимому:
R> functionReturningTwoValues <- function() { return(c(1, 2)) }
R> functionReturningTwoValues()
[1] 1 2
R> a, b <- functionReturningTwoValues()
Error: unexpected ',' in "a,"
R> c(a, b) <- functionReturningTwoValues()
Error in c(a, b) <- functionReturningTwoValues() : object 'a' not found
я действительно должен сделать следующее?
R> r <- functionReturningTwoValues()
R> a <- r[1]; b <- r[2]
или программист на R напишет что-то вроде этого:
R> functionReturningTwoValues <- function() {return(list(first=1, second=2))}
R> r <- functionReturningTwoValues()
R> r$first
[1] 1
R> r$second
[1] 2
--- отредактировано, чтобы ответить на вопросы Шейна ---
Мне не нужно давать имена частям значений результата. Я применяю одну статистическую функцию к первому компоненту, а другую ко второму компоненту (min
а такжеmax
, если бы это была одинаковая функция для обоих компонентов, мне не нужно было бы их разбивать).