【发布时间】:2026-02-05 18:05:01
【问题描述】:
我有两个数据集,类似于
Datset1
Index Mac Date Cons
1 35 1432425600 Nil
2 35 1431993600 Nil
3 35 1433894400 Nil
4 35 1433376000 Nil
Dataset2
Index Mac Start_Date End_Date Cons
1 35 1432339200 1432771200 D1
2 35 1433116800 1435017600 D2
所以,我正在寻找的只是一个结果集,来自 Dataset1,它在 dataset2 上的 Mac 列上匹配,并且 [Dataset1.Date] 应该在 [Dataset2.Start_Date] 和 [Dataset.End_Date] 之间,以获取该列缺点。所以理想情况下,我的结果应该类似于
Final Dataset
Index Mac Date Cons
1 35 1432425600 D1
2 35 1431993600 Nil
3 35 1433894400 D2
4 35 1433376000 D2
我在使用 sqldf 时尝试在 R 中实现它,一开始我只在 Mac 上使用了 1 个简单代码
sqldf2 <- sqldf("update dataset1
set dataset1.Cons = dataset2.Cons
FROM dataset1 INNER JOIN dataset2
ON dataset1.Mac = dataset2.Mac")
但它给了我一个错误
Error in rsqlite_send_query(conn@ptr, statement) : near ".": syntax error
我打算进一步使用这样的东西,这绝对不对,也请帮忙
sqldf2 <- sqldf("update dataset1
set dataset1.Cons = dataset2.Cons
FROM dataset1 INNER JOIN dataset2
ON dataset1.Mac = dataset2.Mac
AND (dataset1.Date > dataset2.Start_Date & dataset1.Date<dataset2.End_Date)")
感谢所有帮助!
【问题讨论】:
标签: r sqlite join sql-update sqldf