我有一个函数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$vector
,L$matrix
或L$fit
。
我该怎么做?我认为这个想法类似于glm
中使用的想法,因为它的输出是一个列表,但你可以通过$coefficients
获得系数。
谢谢,
答案 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)