所以我有一个具有多个返回值的函数。这方面的一个例子如下:
Test.function <- function(x){
a <- x^2
b <- x^3
c <- x^4
return(list(
"a" = a,
"b" = b,
"c" = c
))
}
现在,我想使用'apply'函数只提取其中一个值。例如'b'。下面的代码生成一个包含10个对象的列表,每个对象都带有a,b和c的向量。我想创建一个只有b的矩阵。
apply(matrix(rnorm(200),nrow = 20), 2, FUN= Test.function)
答案 0 :(得分:1)
使用lapply
或sapply
,您可以对名为&#34; b&#34;的列表中的元素进行子集化。
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")