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。
答
使用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 ...
就分配给它。 –