通过 for循环 R语言,我尝试使用插入语句来保存表格中的行: 一行示例如下所示:
NUMPAT NAME FIRSTNAM BIRTHDATE SEX DATPREL ADICAP1 IDPAT NUMERORUM
1 ELOSTE JAMES 2003-09-27 1 2008-03-24 BHOTE4P1 468 2
我试图写的是:
info<- paste("INSERT INTO tab_anapath_std1 VALUES (",matOp[i,1],", \",matOp[i,2],\",\",matOp[i,3], \",",matOp[i,4],",",matOp[i,5],",",matOp[i,6],",\",matOp[i,7],\",",matOp[i,8],",",matOp[i,9],")")
sql_update_tbl_ds <- fn$dbSendQuery(dbconn, info)
我得到的输出是:
NUMPAT NAME FIRSTNAM BIRTHDATE SEX DATPREL ADICAP1 IDPAT NUMERORUM
1 ,matOp[i,2], ,matOp[i,3], 0000-00-00 1 0000-00-00 ,matOp[i,7], 468 2
我有一个真正的问题来管理引号;我甚至试图改变而没有成功; 我该怎么写呢?
答案 0 :(得分:1)
如果您使用的是fn$
,则无需使用paste
。 fn$
是paste
的替代方案。只需写出字符串,并在任何地方插入带有反引号的R代码R代码。以下是使用fn$
使用内置BOD
数据框的自包含示例。
library(sqldf)
matOp <- matrix(1:4, 1, 4)
i <- 1
sql <- "select * from BOD where Time = `matOp[i, 4]`"
fn$identity(sql)
## [1] "select * from BOD where Time = 4"
fn$sqldf(sql)
## Time demand
## 1 4 16
答案 1 :(得分:0)
尝试使用info <- sprintf("INSERT INTO tab_anapath_std1 VALUES ('%s', '%s', '%s', '%d', '%s', '%s', '%d', '%d')", matOp[i, 1], matOp[i, 2], matOp[i, 3], matOp[i, 4], matOp[i, 4], matOp[i, 5], matOp[i, 6], mat[i, 7], mat[i, 8], mat[i, 9])
函数执行此操作。
2