【问题标题】:Using apply function in R to a particular function value使用 R 中的应用函数到特定的函数值
【发布时间】:2018-11-22 23:52:27
【问题描述】:

所以我有一个具有多个返回值的函数。这方面的一个例子如下:

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

现在,我想使用“应用”函数仅提取其中一个值。例如'b'。下面的代码生成一个包含 10 个对象的列表,每个对象都有一个由 a、b 和 c 组成的向量。我想创建一个只有 b 的矩阵。

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

【问题讨论】:

    标签: r matrix apply lapply sapply


    【解决方案1】:

    使用lapplysapply,您可以从名为“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")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-05
      • 2020-05-24
      • 2015-02-06
      相关资源
      最近更新 更多