我如何使用 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()
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()