2015-09-16 180 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) 

    } 
} 
相關問題