2015-09-16 178 views
5

当我有data.frame对象时,我可以简单地做View(df),然后我在一个漂亮的表格中看到data.frame(即使我看不到所有的行,我仍然知道我的数据包含哪些变量)。但是当我有一个list对象时,同样的命令不起作用。而当名单很大时,我不知道名单是什么样子。我试过head(mylist),但我的控制台根本无法一次显示所有信息。在R中查看大型列表的有效方法是什么?R:有没有办法查看列表

+0

'print(mylist)'? –

+0

您可以编写自定义打印方法。 –

+0

@JakubKania由于某些原因,我的RStudio控制台不显示列表的顶部?我假设我的列表太大了(148MB) – Adrian

回答

6

我用str看到任何物体的结构,尤其是复杂的列表的

Rstudio显示您通过点击在数据窗口中的蓝色箭头结构:

enter image description here

5

这里有一个一些方式来看待一个列表:

看看列表中的一个元素:

myList[[1]] 

看列表中的一个元件的头部:

head(myList[[1]]) 

查看在列表整齐的元素:

summary(myList) 

查看(更深入的)的列表的结构:

str(myList) 

另外,上面你的建议可以做一个自定义打印方法,例如:

printList <- function(list) { 

    for (item in 1:length(list)) { 

    print(head(list[[item]])) 

    } 
} 

以上将打印列表中每个项目的头部。

3

如果你有一个非常大的列表,你可以看看它的一部分使用

str(myList, max=1) 
+0

很棒的建议,imo。 –

0

这是giraffehere的优秀的简单编辑回答。

对于某些列表,仅打印嵌套对象子集的头部以便在head()的输出上面打印给定槽的名称是方便的。

参数:

#'@param list a list object name 
#'@param n an integer - the the objects within the list that you wish to print 
#'@param hn an integer - the number of rows you wish head to print 

USAGE:的printList(MYLIST中,n = 5,HN = 3)

printList <- function(list, n = length(list), hn = 6) { 

    for (item in 1:n) { 
    cat("\n", names(list[item]), ":\n") 
    print(head(list[[item]], hn)) 

    } 
} 

对于数值列表,输出可以是更易读如果位数是有限的到3,例如:

printList <- function(list, n = length(list), hn = 6) { 

    for (item in 1:n) { 
    cat("\n", names(list[item]), ":\n") 
    print(head(list[[item]], hn), digits = 3) 

    } 
} 
相关问题