Вы можете создавать свои собственные функции SQL в R. Они просто должны создать строку, которая является допустимым запросом SQL.Я не знаю расстояния Джаро-Винклера, но могу привести пример для построения:
union_all = function(table_a,table_b, list_of_columns){
# extract database connection
connection = table_a$src$con
sql_query = build_sql(con = connection,
sql_render(table_a),
"\nUNION ALL\n",
sql_render(table_b)
)
return(tbl(connection, sql(sql_query)))
}
unioned_table = union_all(table_1, table_2, c("who", "where", "when"))
Вот две ключевые команды:
sql_render
, которая берет таблицу dbplyr и возвращает код SQL, который ее производит build_sql
, который собирает запрос из строк.
У вас есть выбор для вашей команды выполнения:
tbl(connection, sql(sql_query))
вернет результирующую таблицу dbExecute(db_connection, as.character(sql_query))
выполнит запрос без возврата результата (полезно для удаления таблиц, создания индексов и т. Д.)