我在看documentation of RSQLite。我创建了一个数据库并使用
推送了一些数据mydb <- dbConnect(RSQLite::SQLite(), "myDB")
dbWriteTable(mydb, "mtcars", mtcars)
我的问题如下:如何更新此表,使用data.frame mtcars2,并指定要使用的主键?
我绝对不想遍历data.frame的所有行......
答案 0 :(得分:0)
我最终使用shQuote()
连接列表中的所有值,然后将其传递给sqlite UPDATE
语句:
library(RSQLite)
mydb <- dbConnect(SQLite(), "myDB")
dbWriteTable(mydb, "mtcars", mtcars, row.names=T)
mtcars2 <- subset(mtcars, hp >= 150)
dbSendQuery(mydb, paste("UPDATE mtcars SET hp = 'MAX' WHERE row_names IN (",
paste0(shQuote(rownames(mtcars2)), collapse=","), ")" ))
dbDisconnect(mydb)