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

有人知道这个功能:

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

    fitted_lm$

在我的全局环境中,我看到fits_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)

2 years ago

尝试为您的函数生成的列表中的元素指定名称:

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