如何在列表中格式化函数的输出

时间:2017-11-07 08:20:52

标签: r list function format output

我有一个函数f,它返回一个具有不同输出的列表L。让我们假设输出由下式给出:

L[[1]] A vector of values
L[[2]] A matrix 
L[[3]] The result of a glm (or any regression model)

为了方便用户访问信息,我想给出名字

(vector = L[[1]], matrix = L[[2]], fit = L[[3]])

以便用户可以撰写L$vectorL$matrixL$fit

我该怎么做?我认为这个想法类似于glm中使用的想法,因为它的输出是一个列表,但你可以通过$coefficients获得系数。

谢谢,

2 个答案:

答案 0 :(得分:2)

您可以为列表元素指定名称:

> L = list(values = "A vector of values",
+          matrix = matrix(1,3,3),
+          result = 1)
> L
$values
[1] "A vector of values"

$matrix
     [,1] [,2] [,3]
[1,]    1    1    1
[2,]    1    1    1
[3,]    1    1    1

$result
[1] 1

然后您可以通过多种方式引用列表元素,例如

> L[[3]]
[1] 1
> L$result
[1] 1
> L[['result']]
[1] 1

答案 1 :(得分:0)

你可以尝试:

result=list(vector=c(1,2,....), matrix=matrix, fit=model)
return(result)