首页 > 解决方案 > 如何在列表元素之间添加虚线?

问题描述

我有一个这样的列表:

x <- 1
y <- 2
z <- "something"
my_list <- list("x" = x, "y" = y, "z" = z)
> my_list
$x
[1] 1
$y
[1] 2
$z
"something"

事实上,我的列表很长,包括大文本元素,因此在输出中我无法轻松识别它们。因此,我想在输出中列表的每个元素之后放置一条虚线,例如

$x
[1] 1
-------------------------------------
$y
[1] 2
-------------------------------------
$z
[1] "something"
-------------------------------------

标签: r

解决方案


像这样的东西可以工作。

mylistprint <- function(x){

    nn <- names(x)
    ll <- length(x)
    if (length(nn) != ll) {
      nn <- paste("Component", seq.int(ll))
      }
    for (i in seq_len(ll)) {
      cat(nn[i], ":\n")
      print(x[[i]])
      cat("\n")
      cat(strrep("-", 25))
      cat("\n")
    }
    invisible(x)
}

mylistprint(my_list)

其输出将是:

x :
[1] 1

-------------------------
y :
[1] 2

-------------------------
z :
[1] "something"

-------------------------

推荐阅读