我正在使用数据框中的数据来尝试更新看起来像这样的sqlite数据库中的表
Part | Price
------------
a | 5
b | 9
我为此收到语法错误
for(row in 1:nrow(newdata)){dbGetQuery(conn=db,"UPDATE Parts SET Price = ",newdata$Price[row], " WHERE Part = '", newdata$Part[row],"';")}
我得到的确切错误:
rsqlite_send_query(conn @ ptr,语句)中的错误:“”附近:语法错误
为什么要这样?
最佳答案
查询字符串需要内置到单个字符串中
for(row in seq_len(nrow(newdata))) {
dbGetQuery(conn=db, sprintf("UPDATE Parts SET Price = %i WHERE Part = '%s';", newdata$Price[row], newdata$Part[row]))
}
也可以使用
paste
或paste0
完成此操作,但是sprintf
可能更易于阅读。关于r - 使用数据框更新表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46449760/