R 如何在列表元素之间添加虚线?
我有这样一份清单:R 如何在列表元素之间添加虚线?,r,R,我有这样一份清单: 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" 根据我的评论,您可以运行for循环,打印列表中的每个元素,然后打印“--------------”,然后打印列表中的下一个元素,将其放入函数中,您就完成了,例如 lsprint <- function(lis
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"
根据我的评论,您可以运行for循环,打印列表中的每个元素,然后打印
“--------------”
,然后打印列表中的下一个元素,将其放入函数中,您就完成了,例如
lsprint <- function(list){
for (i in 1:length(list)){
print(names(my_list)[i])
print(my_list[[i]])
print('--------------------')
}
}
lsprint(my_list)
编辑:添加了,这样你就可以得到这个名字了,类似这样的名字可能会有用
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)
使用mapply
可能更好的方法是使用
mapply
,或者至少它要短得多
fun1 <- function(x,y) cat(paste0('$', x), y,strrep("-", 25), sep = '\n')
x <- mapply(fun1, names(my_list), my_list)
单行x <- mapply(function(x,y) cat(paste0('$', x), y,strrep("-", 25), sep = '\n'), names(my_list), my_list)
x您可以通过在控制台中键入print.list
来查看列表的打印方法。如果要修改打印行为,可以制作自己版本的print.list
。这是否用于打印@arkun是!这是给你的printing@HectorHaffenden这是个好主意,谢谢。它不显示列表项的原始名称,如$x
,如果您需要查找某些内容,这可能会带来不便@马库斯回答说,不幸的是,他删除了它,这是一个很好的选择。一个改进可能是strrep(“-”,25)
而不是paste0(rep(“-”,25),collapse=“”)
我添加了strrep(“-”,25)
来代替paste0(rep(“-”,25),collapse=“”)
,这是一个很大的改进。
x :
[1] 1
-------------------------
y :
[1] 2
-------------------------
z :
[1] "something"
-------------------------
fun1 <- function(x,y) cat(paste0('$', x), y,strrep("-", 25), sep = '\n')
x <- mapply(fun1, names(my_list), my_list)
$x
1
-------------------------
$y
2
-------------------------
$z
something
-------------------------
x <- mapply(function(x,y) cat(paste0('$', x), y,strrep("-", 25), sep = '\n'), names(my_list), my_list)
print.list <- function(list) {
x <- mapply(function(x,y) cat(paste0('$', x), y,strrep("-", 25), sep = '\n'), names(list), list)
}