Использование функции apply в R для определенного значения функции - PullRequest
0 голосов
/ 13 июня 2018

Итак, у меня есть функция с несколькими возвращаемыми значениями.Примером этого может быть следующее:

Test.function <- function(x){
a <- x^2
b <- x^3
c <- x^4
return(list(
"a" =  a,
"b" =  b,
"c"  = c
))
}

Теперь я хотел бы использовать функцию apply для извлечения только одного из этих значений.например, «б».Следующий код создает список из 10 объектов, каждый из которых имеет вектор a, b и c.Я хотел бы создать матрицу только из б.

apply(matrix(rnorm(200),nrow = 20), 2, FUN= Test.function)

1 Ответ

0 голосов
/ 13 июня 2018

С помощью lapply или sapply вы можете поместить элементы из списка с именем "b"

set.seed(100)
fulloutput <- apply(matrix(rnorm(200),nrow = 20), 2, FUN= Test.function)
lapply(fulloutput, "[[", "b")

или в одну строку:

sapply(apply(matrix(rnorm(200),nrow = 20), 2, FUN= Test.function), "[[", "b")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...