Все ще намагаюся ввійти в логіку 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
якщо це була однакова функція для обох компонентів, я б не потребував їх поділу).
attr
значення, що повертається.