R-如何在不打印控制台的情况下返回命名列表

问题描述:

我想从函数f返回一个命名列表。 例如,调用f(args)给了我一个名为x和y的变量的命名列表。 我在函数结尾使用了return(list(x = x,y = y))。R-如何在不打印控制台的情况下返回命名列表

$x 
[1] 1 2 

$y 
[1] 12 

问题是,上面的输出总是将整个列表的值打印到控制台。我想避免这种情况,因为$ x可能会采用非常大的矩阵的值。有没有办法让我定义模型< -f(args),并在将模型输入到控制台时抑制$ x值的打印。相反,我只想通过$ x模型访问x。

+0

就分配给它。 –

使用invisible

f <- function(x, y) { 
    invisible(list(x, y)) 
} 

f(rnorm(1e4), rnorm(1e4)) 
## (nothing) 

str(f(rnorm(1e4), rnorm(1e4))) 
# List of 2 
# $ : num [1:10000] 2.402 0.51 -1.117 0.415 0.849 ... 
# $ : num [1:10000] -0.642 0.967 -0.328 -0.33 -0.914 ...