RPostgreSQL - 如何将值从r导出到postgresql表

时间:2015-02-03 13:42:49

标签: r postgresql

我在数据库中的table(table1)

Column |  Type   | Modifiers
--------+---------+-----------
 date1  | date    | not null
 line_1 | numeric | default 0
 line_2 | numeric | default 0
 line_3 | numeric | default 0
 line_4 | numeric | default 0
 line_5 | numeric | default 0

R控制台

> line1 <- 32+45
> line1
[1] 77

我想将这些值(line1 = 77)导出到line_1列的表(table1)中 和date1列应填写当前日期减去1天。

我尝试使用以下命令更新line1值,但我收到错误

s&lt; - dbGetQuery(con,&#34; insert into table1(line_1)values(line1)&#34;)

postgresqlExecStatement(conn,statement,...)出错:   RS-DBI驱动程序:(无法检索结果:错误:列&#34;第1行和第34行;不存在 第1行:插入table1(line_1)值(第1行)                                               ^ ) 警告信息: 在postgresqlQuickSQL(conn,statement,...)中:   无法将execuinsert创建为table1(line_1)值(line1 )

1 个答案:

答案 0 :(得分:0)

我认为您的代码中存在两个问题 -

首先,您可能应该使用dbSendQuery()。 这是因为您正在向Postgres服务器发送命令。

其次,当您将文本放入双引号时,这通常会告诉R将其解释为字符串。因此,当您“插入table1(line_1)值(line1)”时,您实际上是在告诉Postgres将“line1”插入“line_1”。如果你只想添加一个值,你想要的是粘贴命令。

试试这个:

dbSendQuery(con, paste0("insert into table1 (line_1) values (",line1,")"))

和你的约会:

date1<-Sys.Date()-1
dbSendQuery(con, paste0("insert into table1 (date1) values (",date1,")"))