У меня есть два набора данных, что-то вроде
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
Итак, все, что я ищу, - это результирующий набор из набора данных1, который соответствует столбцу Mac в наборе данных2 и [Dataset1.Date] должен быть между [Dataset2.Start_Date] и [Dataset.End_Date], чтобы получить столбец Cons. Так что в идеале мой результат должен выглядеть примерно так
Final Dataset
Index Mac Date Cons
1 35 1432425600 D1
2 35 1431993600 Nil
3 35 1433894400 D2
4 35 1433376000 D2
Я пытаюсь добиться этого в R при использовании sqldf. Для начала я использовал 1 простой код только на Mac.
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)")
Я ценю всю помощь!