我建立了自己的功能:
library(VineCopula)
Matrix <- c(5, 2, 3, 1, 4,
0, 2, 3, 4, 1,
0, 0, 3, 4, 1,
0, 0, 0, 4, 1,
0, 0, 0, 0, 1)
Matrix <- matrix(Matrix, 5, 5)
family <-par <- par2 <- list()
for(i in 1:3){
# define R-vine pair-copula family matrix
family[[i]] <- c(0, 1, 3, 4, 4,
0, 0, 3, 4, 1,
0, 0, 0, 4, 1,
0, 0, 0, 0, 3,
0, 0, 0, 0, 0)
family[[i]] <- matrix(family[[i]], 5, 5)
# define R-vine pair-copula parameter matrix
par[[i]] <- c(0, 0.2, 0.9, 1.5, 3.9,
0, 0, 1.1, 1.6, 0.9,
0, 0, 0, 1.9, 0.5,
0, 0, 0, 0, 4.8,
0, 0, 0, 0, 0)
par[[i]] <- matrix(par[[i]], 5, 5)
# define second R-vine pair-copula parameter matrix
par2[[i]] <- matrix(0, 5, 5)
}
my_func <- function(Matrix, family, par, par2){
x <- list()
for(i in 1:3){
x[[i]] <- RVineMatrix(Matrix = Matrix,family=family[[i]],par=par[[i]],par2 = par2[[i]])
}
x
}
这将返回一个列表。然后我如何从我的函数中提取特定元素。例如,我如何获得my_func$Matrix
或my_func$par[1]
注意:family <– par <– par2 <– list()
。我还尝试return(x[i]$family[i])
并返回NULL
。
运行该功能:
y <- my_func(Matrix = Matrix,family = family,par = par,par2 = par2)
> y$Matrix
NULL
答案 0 :(得分:2)
您的函数的返回值是类list
的{{1}},其中包含名为RVineMatrix
的元素。请参阅帮助页面Matrix
,?RVineMatrix
部分。所以你需要Value
。
y[[1]]$Matrix
答案 1 :(得分:1)
您需要将该功能的结果分配给某事物。例如:
y <- my_func(Matrix = ... , family = ..., par = ..., par2 = ...)
上面的...
是你的参数的值。根据您的my_func
定义,最终结果是一个未命名的列表,以便访问您使用的元素:
y[[1]]
y[[2]]
y[[3]]
或仅y
访问所有元素。