将函数的结果存储在R中的复杂对象(?)中

时间:2018-12-10 10:33:35

标签: r function object

所有人都知道此功能:

    fitted_lm = lm(mpg ~ wt, mtcars)
    > class(fitted_lm)
    [1] "lm"

    fitted_lm$

在我的全局环境中,我看到fit_lm作为列表存储,但是当我在对象上调用类函数时,得到的结果是“ lm”。这些对象使它可以轻松地使用“ $”符号访问不同的值。如何以这种方式存储自己的结果?

例如这样的东西:

complex_output <- function(x) {
    row.means <- rowMeans(x)
    col.means <- colMeans(x)
    result <- list(row.means, col.means)
    return(result)
}

complex_result <- complex_output(x = mtcars)
complex_result[[1]]
complex_result$ # does not work

我当然可以通过双括号访问所有结果,但是使用“ $”符号访问它们会更加方便。我该怎么办?

1 个答案:

答案 0 :(得分:2)

尝试为函数生成的列表中的元素分配名称:

complex_output <- function(x) {
    row.means <- rowMeans(x)
    col.means <- colMeans(x)
    result <- list(r=row.means, c=col.means)
    return(result)
}

complex_result$r