如何在r中将一个SQL列拆分为多个列
我通过R中的dbplyr::memdb_frame()创建了一个tbl_SQLiteConnection对象 我试试这样的如何在r中将一个SQL列拆分为多个列,sql,r,split,Sql,R,Split,我通过R中的dbplyr::memdb_frame()创建了一个tbl_SQLiteConnection对象 我试试这样的 sq <- paste0('SELECT split_part(ch,"a",1) FROM (',sql_render(tb),')') tbl(tb$src$con,sql(sq)) sq这是否有效: library(dplyr) library(tidyr) tb %>% separate(col = ch
sq <- paste0('SELECT split_part(ch,"a",1)
FROM (',sql_render(tb),')')
tbl(tb$src$con,sql(sq))
sq这是否有效:
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
如果问题是如何使用R中的SQLite select语句将数据帧中的指示列一分为二,那么下面的select语句将使用SQLite的and函数
library(sqldf)
tb <- data.frame(ch = c('1a1', '2a3'), cq = c(1, 2))
sqldf("
select
substr(ch, 1, instr(ch, 'a') - 1) as ch1,
substr(ch, instr(ch, 'a') + 1) as ch2,
cq
from tb")
你能添加你期望的输出吗!我在第一个答案中添加了这个问题是如何拆分一个SQL列,而不是按SQL语法拆分一个dataframe列。这不起作用,这个命令对tibble很有效,但在这里不起作用<代码>UseMethod中的错误(“separate”):没有适用于“separate”的方法应用于类“c”的对象(“tbl\U SQLiteConnection”、“tbl\U dbi”、“tbl\U sql”、“tbl\U lazy”、“tbl”)”
尝试tb%>%collect()%%>%separate(…)
?谢谢!collect()与as相同。数据。框架,它不是sql,而是数据。框架
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
library(sqldf)
tb <- data.frame(ch = c('1a1', '2a3'), cq = c(1, 2))
sqldf("
select
substr(ch, 1, instr(ch, 'a') - 1) as ch1,
substr(ch, instr(ch, 'a') + 1) as ch2,
cq
from tb")
ch1 ch2 cq
1 1 1 1
2 2 3 2