如何使用 sqldf R 包使用 UPDATE 函数更新某些行?
How to update certain rows using UPDATE function using sqldf R package?
我有两个表:dat1 和 dat2。
names(dat1):
id, filename, kd_estimated, kd_95CI_low, kd_95CI_upp, start_time, end_time, max_response, min_response , RMSE, resp_95CI_low, resp_95CI_upp
names(dat2) = names(dat1)
数据如下所示:
1, A1_a1H12.xls.txt, 0.00172, 0.0017, 0.00174, 450, 600, 0.267, 0.204, 0.00256, 0.229, 0.229
当文件名相同时,我想用 dat2 更新 dat1。下面是我的代码:
mydata_up <- sqldf(c("UPDATE dat1 SET kd_estimated = dat2.kd_estimated FROM dat2 WHERE dat2.filename = dat1.filename", "SELECT * FROM dat1"))
但是,我总是得到以下错误:
"Error: near "FROM": 语法错误"
没有线索:-(谢谢你的帮助。
在许多数据库中,您可以为此使用相关子查询:
UPDATE dat1 SET kd_estimated = (
SELECT dat2.kd_estimated
FROM dat2
WHERE dat2.filename = dat1.filename
)
如果 dat2
中可能缺少匹配项,则:
UPDATE dat1 SET kd_estimated = (
SELECT dat2.kd_estimated
FROM dat2
WHERE dat2.filename = dat1.filename
)
WHERE EXISTS (
SELECT 1
FROM dat2
WHERE dat2.filename = dat1.filename
)
我有两个表:dat1 和 dat2。
names(dat1):
id, filename, kd_estimated, kd_95CI_low, kd_95CI_upp, start_time, end_time, max_response, min_response , RMSE, resp_95CI_low, resp_95CI_upp
names(dat2) = names(dat1)
数据如下所示:
1, A1_a1H12.xls.txt, 0.00172, 0.0017, 0.00174, 450, 600, 0.267, 0.204, 0.00256, 0.229, 0.229
当文件名相同时,我想用 dat2 更新 dat1。下面是我的代码:
mydata_up <- sqldf(c("UPDATE dat1 SET kd_estimated = dat2.kd_estimated FROM dat2 WHERE dat2.filename = dat1.filename", "SELECT * FROM dat1"))
但是,我总是得到以下错误:
"Error: near "FROM": 语法错误"
没有线索:-(谢谢你的帮助。
在许多数据库中,您可以为此使用相关子查询:
UPDATE dat1 SET kd_estimated = (
SELECT dat2.kd_estimated
FROM dat2
WHERE dat2.filename = dat1.filename
)
如果 dat2
中可能缺少匹配项,则:
UPDATE dat1 SET kd_estimated = (
SELECT dat2.kd_estimated
FROM dat2
WHERE dat2.filename = dat1.filename
)
WHERE EXISTS (
SELECT 1
FROM dat2
WHERE dat2.filename = dat1.filename
)