首页 > 解决方案 > 如何在r中将一个SQL列拆分为多列

问题描述

我在 R 中通过 dbplyr::memdb_frame() 创建了一个 tbl_SQLiteConnection 对象。

    library(dbplyr)
    library(dplyr)
    tb=memdb_frame(data.frame(ch=c('1a1','2a3'),cq=c(1,2)))
    tb

# Source:   table<dbplyr_002> [?? x 2]
# Database: sqlite 3.33.0 [:memory:]
  ch       cq
  <chr> <dbl>
1 1a1       1
2 2a3       2

我想将列拆分cha两列:ch1如下ch2所示:

# Source:   table<dbplyr_004> [?? x 3]
# Database: sqlite 3.33.0 [:memory:]
    ch1   ch2    cq
  <dbl> <dbl> <dbl>
1     1     1     1
2     2     3     2

我尝试这样的事情

sq <- paste0('SELECT split_part(ch,"a",1)
             FROM (',sql_render(tb),')')

tbl(tb$src$con,sql(sq))

这没用!!!

你能帮我如何在 R 中进行吗?

标签: sqlrsplitdbplyr

解决方案


这是否有效:

library(dplyr)
library(tidyr)
tb %>% separate(col = ch, into = c('ch1','ch2'), sep = 'a')
  ch1 ch2 cq
1   1   1  1
2   2   3  2

推荐阅读