使用dplyr和PostgresSQL从R中的数据库中获取数据时,如何使用paste或paste0

时间:2019-07-05 07:12:12

标签: r dplyr rpostgresql

我正在尝试使用dplyr从数据库(PostgreSQL)中获取数据进行查询,这是我正在尝试实现的目标。

例如,我在CSV文件中有data1,其中包含列c1和c2,我将c1和c2合并为一个组合。我想通过组合数据库中的field(临时)然后通过组合过滤从数据库中获取数据。 如果你们能帮助我,我将不胜感激。

#Example Code

myRedshift <- src_postgres('xxxxx',
                             host = 'xxxxxxxxxxxxxxxxxx.redshift.amazonaws.com',
                             port = 5439,
                             user = "xxxx",
                             password = "xxxxxxx")
data <- tbl(myRedshift, "datasets1")
data1<-read.csv("csv1.csv",stringsAsFactors = FALSE)
data1$combination<-paste0(data1$c1,data1$c2)

temp<-data%>% filter(paste0(dc1,dc2) %in% !! pull(data1,combination))%>%  select(dc1,dc2,dc3)

PulledData <-setDF(as.data.table(temp))

我期望过滤出的数据,但是它抛出以下错误:

Error in postgresqlExecStatement(conn, statement, ...) : 
 RS-DBI driver: (could not Retrieve the result : ERROR:  function concat_ws("unknown", character varying, character varying) does not exist
HINT:  No function matches the given name and argument types. You may need to add explicit type casts.

0 个答案:

没有答案