我如何使用 dbplyr 在 R 中“查看()”内存中 table?没有 SQL 个查询

How do I `View()` an in-memory table in R with dbplyr? without SQL queries

library(dplyr, warn.conflicts = FALSE)

con <- DBI::dbConnect(RSQLite::SQLite(), ":memory:")
copy_to(con, mtcars)

mtcars2 <- tbl(con, "mtcars")
mtcars2
#> # Source:   table<mtcars> [?? x 11]
#> # Database: sqlite 3.25.3 [:memory:]
#>      mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb
#>    <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#>  1  21       6  160    110  3.9   2.62  16.5     0     1     4     4
#>  2  21       6  160    110  3.9   2.88  17.0     0     1     4     4
#>  3  22.8     4  108     93  3.85  2.32  18.6     1     1     4     1
#>  4  21.4     6  258    110  3.08  3.22  19.4     1     0     3     1
#>  5  18.7     8  360    175  3.15  3.44  17.0     0     0     3     2
#>  6  18.1     6  225    105  2.76  3.46  20.2     1     0     3     1
#>  7  14.3     8  360    245  3.21  3.57  15.8     0     0     3     4
#>  8  24.4     4  147.    62  3.69  3.19  20       1     0     4     2
#>  9  22.8     4  141.    95  3.92  3.15  22.9     1     0     4     2
#> 10  19.2     6  168.   123  3.92  3.44  18.3     1     0     4     4
#> # … with more rows

如何在 R 中查看内存中的 table?我正在使用 DBI 和 dbplyr 包。我在 R Studio 中寻找当您发出 View(mtcars) 等命令时弹出的电子表格视图。我真的只想查看 table 的前 10 或 20 行。我使用的很多 SQL table 都是数百万行、数百列,我不想显示所有这些数据。

事情似乎有所不同足够 从 dplyr 到 dbplyr 让我有点困惑。如果你想知道为什么我对上面显示的控制台视图不满意,因为它通常会在大约十几个变量处被切断,或者无论你的控制台有多宽。我需要浏览所有变量(列),即使我的 table 有数百列宽。

# Doesn't really work
mtcars2 %>% View()

我还要提一下,如果可能的话,我想避免在答案中使用直接 SQL 查询。我对使用 collect() 函数持开放态度,但当 table 的大小约为 250K+ 行、100+ 列时,它似乎非常慢。

@DiceboyT 指出了解决方法

mtcars2 %>% head(10) %>% collect() %>% View()