sqldf
по умолчанию использует базу данных в памяти, но вы можете попросить ее использовать внешнюю базу данных с помощью следующего.
Ничего не нужно настраивать. Это делает все это. Просто добавьте dbname = tempfile()
к вашему выражению sqldf
.
sqldf(...whatever..., dbname = tempfile())
Следующее не будет иметь никакого значения для использования памяти, но в качестве примечания, что вы можете написать этот запрос как:
sqldf('select A.*, coalesce(A.cost, B.meancost) as newcost
from df A
left join df2 B using(ID)`)