浏览 tibble 时只能查看10行以上的内容存在问题。

24

首先 - 我是一个编程和R的初学者,如果这是一个愚蠢的问题,请原谅我。我在查看从以下代码生成的tibble时遇到了麻烦,因为无法查看超过十行。

下面的代码旨在查找一本书中最常见的单词。我得到了我想要的结果,但是如何查看超过10行的数据呢?据我所知,它没有被保存为我可以调用的数据框。

library(dplyr)
tidy_books %>%
    anti_join(stop_words) %>%
    count(word, sort=TRUE)
Joining, by = "word"
# A tibble: 3,397 x 2
   word       n
   <chr>  <int>
 1 alice    820
 2 queen    247
 3 time     141
 4 king     122
 5 head     112
 6 looked   100
 7 white     97
 8 round     96
 9 voice     86
10 tone      81
# ... with 3,387 more rows

1
尝试使用 View(tidy_books)head(tidy_books, 20) - G5W
12
tibbles 故意只打印少数行数据 - 你可以通过 %>% print(n = 20) 发送结果来查看更多。 - Marius
@Marius 的建议可能是最优雅的,但你也可以简单地用 as.data.frame 包装整个语句。 - Joseph Wood
3个回答

30
尽管这个问题有一个完全可以接受的答案,但@Marius的评论更短,所以:
tidy_books %>% print(n = 100)

正如你所说,作为一个初学者,你可以将 n = 100 替换为任何你想要的数字。

另外,作为一个初学者,要查看整个表格:

tidy_books %>% print(n = nrow(tidy_books))

由于某种原因,print(n = ...)会在tibble显示中打开科学计数法。有没有办法避免这种情况? - Agile Bean
你可以使用 options(scipen=10) 来惩罚科学计数法的显示。较高的数字会惩罚(从而减少)科学计数法的显示概率,较低的数字(如-10)则增加了这一概率。 - Alpha Bravo

13

当我想要查看这样一个管道的输出时,我经常将它直接传递给 View()函数。

library(dplyr)
library(tidytext)

tidy_books %>%
    anti_join(stop_words) %>%
    count(word, sort=TRUE) %>%
    View()

如果您想将其保存到一个新对象中以便稍后使用,可以在管道的开头将其赋值给一个新的变量名。

word_counts <- tidy_books %>%
    anti_join(stop_words) %>%
    count(word, sort=TRUE)

1

如果您想留在控制台,则请注意tibbles已定义了print S3方法,因此您可以使用选项,例如(参见?print.tbl):

very_long <- as_tibble(seq(1:1000))
print(very_long, n = 3)
# A tibble: 1,000 x 1
  value
  <int>
1     1
2     2
3     3
# ... with 997 more rows

注意,tail 不适用于 tibbles,因此如果您想将 tail 与 tibbles 结合使用以查看数据的末尾,则需要执行以下操作:
print(tail(very_long, n = 3), n = 3)
# A tibble: 3 x 1
  value
  <int>
1   998
2   999
3  1000

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接