当我有data.frame
个对象时,我可以简单地执行View(df)
,然后我会在一张漂亮的桌子上看到data.frame
(即使我看不到所有的行,我仍然知道我的数据包含哪些变量)。
但是当我有一个list
对象时,相同的命令不起作用。当列表很大时,我不知道列表是什么样的。
我试过head(mylist)
,但我的控制台根本无法一次显示所有信息。在R中查看大型列表的有效方法是什么?
答案 0 :(得分:9)
答案 1 :(得分:8)
以下是查看列表的几种方法:
查看列表中的一个元素:
myList[[1]]
查看列表中一个元素的头部:
head(myList[[1]])
整齐地查看列表中的元素:
summary(myList)
查看列表的结构(更深入):
str(myList)
或者,如上所述,您可以制作自定义打印方法:
printList <- function(list) {
for (item in 1:length(list)) {
print(head(list[[item]]))
}
}
以上将打印出列表中每个项目的头部。
答案 2 :(得分:5)
您还可以使用名为listviewer
的包devtools::install_github(c('jeroenooms/jsonlite', 'rstudio/shiny', 'ramnathv/htmlwidgets', 'timelyportfolio/listviewer'))
library(listviewer)
jsonedit( myList )
答案 3 :(得分:4)
如果你有一个非常大的列表,你可以使用
查看其中的一部分str(myList, max=1)
答案 4 :(得分:1)
您可以使用lapply
系列检查数据框的“头部”:
lapply(yourList, head)
将返回您列表的“头部”。
例如:
df1 <- data.frame(x = runif(3), y = runif(3))
df2 <- data.frame(x = runif(3), y = runif(3))
dfs <- list(df1, df2)
lapply(dfs, head)
返回:
> lapply(dfs, head)
[[1]]
x y
1 0.3149013 0.8418625
2 0.8807581 0.5048528
3 0.2490966 0.2373453
[[2]]
x y
1 0.4132597 0.5762428
2 0.0303704 0.3399696
3 0.9425158 0.5465939
您可以使用与data.frames相关的任何功能,而不是“head
”,即names
,nrow
......
答案 5 :(得分:1)
看到您明确指定要与列表一起使用View()
时,可能正是您要查找的内容:
View(myList[[x]])
x
是您要查看的列表元素的编号。
例如:
View(myList[[1]])
将以标准View()
的格式显示列表的第一个元素,您将在RStudio中使用它。
如果您知道要查看的列表项的名称,则可以执行以下操作:
View(myList[["itemOne"]])
还有其他几种方法,但是这些方法可能最适合您。
答案 6 :(得分:0)
这是对长颈鹿的优秀答案的简单编辑。
对于某些列表,只打印嵌套对象子集的头部,在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
用法: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)
}
}
答案 7 :(得分:0)
我遇到了类似的问题并设法使用我的列表中的as_tibble()
(dplyr或tibble包)来解决它,然后像往常一样使用View()
。
答案 8 :(得分:0)
在最新版本的RStudio中,您可以仅使用View()
(或在“全局环境”窗格中单击对象旁边的蓝色小箭头)。
例如,如果我们使用以下内容创建列表:
test_list <- list(
iris,
mtcars
)
然后以上两种方法中的任何一种都会向您显示:
答案 9 :(得分:0)
我喜欢在列表上使用as.matrix(),然后可以使用标准的View()命令。