如何使用dbplyr`View()`R中的内存表?没有SQL查询

时间:2019-12-18 22:18:35

标签: r r-dbi dbplyr

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中内存中的表?我正在使用DBI和dbplyr软件包。我正在寻找R Studio中的电子表格视图,当您发出诸如View(mtcars)之类的命令时,该视图会弹出。我真的只想查看表的前10或20行。我使用的许多SQL表都是数百万行,数百列,并且我不希望显示所有数据。

从dplyr到dbplyr,事情似乎已经完全不同了。 使我有些困惑。并且,如果您想知道为什么我对上面介绍的控制台视图不满意,因为它通常会减少大约十二个变量,或者控制台的宽度太大。即使我的表有数百列宽,我也需要浏览所有变量(列)。

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

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

1 个答案:

答案 0 :(得分:0)

@DiceboyT指出了解决方案

require "./configus"
require "pry"

config = Configus.config :staging, :production do
  production do
    key1 "value1"
    key2 "value2"
    group1 do
      key3 "value3"
      key4 "value4"
    end
  end

  staging do
    key2 "new value2"
    group1 do
      key4 "new value4"
    end
  end

  development do
    key1 "new value1"
    key2 "value2"
    group1 do
      key3 "new value3"
      key4 "value4"
    end
  end

  productionisgsgsd do
    key10 "value10"
  end
end

puts config.key1
#> I wrote output down below:
Traceback (most recent call last):
init.rb:35:in `<main>': undefined method `key1' for #<Hash:0x000056261379cdb0> (NoMethodError)
Did you mean?  key
               key?
               keys