Postgres ARRAY列类型转换为R中的tbl列表列,反之亦然

时间:2018-12-11 08:56:50

标签: r postgresql dplyr

比方说,我正在使用tidyverse软件包中的starwars数据集,其中包含列表列(用于电影,车辆...)。为了简化, 让我们只使用名称和电影数据:

library(tidyverse)
ex_data <- starwars %>%
  select(name, films)

ex_data

# A tibble: 87 x 2
   name               films    
   <chr>              <list>   
 1 Luke Skywalker     <chr [5]>
 2 C-3PO              <chr [6]>
 3 R2-D2              <chr [7]>
 4 Darth Vader        <chr [4]>
 5 Leia Organa        <chr [5]>
 6 Owen Lars          <chr [3]>
 7 Beru Whitesun lars <chr [3]>
 8 R5-D4              <chr [1]>
 9 Biggs Darklighter  <chr [1]>
10 Obi-Wan Kenobi     <chr [6]>
# ... with 77 more rows

我想将此数据复制到PostgreSQL数据库,但我希望将films列转换为SQL中的文本数组类型,如下所示:

starwars=# \d test
       Table "public.test"
   Column   |  Type  | Modifiers
------------+--------+-----------
 name       | text   | not null
 films      | text[] |

是否有使用dplyr和/或dbplyr的简便方法?

另外,我对相反的操作感兴趣,将具有数组类型列的表从postgreSQL db导入R中,并获取数组1的列表类型列。

提前谢谢!

0 个答案:

没有答案