Я хотел бы преобразовать (короткий) dplyr
конвейер в строковое представление его эквивалента SQL. Например:
library(dplyr)
dbplyr::lazy_frame() %>% filter(foo == 'bar')
распечатает по существу то, что я ищу, а именно:
<SQL>
SELECT *
FROM `df`
WHERE (`foo` = 'bar')
проблема в том, что это просто напечатано . В частности, я не вижу, как присвоить его строке. Я попытался добавить %>% show_query()
, но я считаю, что это имеет тот же результат (т.е. отображение запроса, а не преобразование в строку). Добавление %>% as.character()
действительно производит что-то, но это не SQL (это символьный вектор, первый элемент которого "list(name = \"filter\", x = list(x = list(), vars = character(0)), dots = list(~foo == \"bar\"), args = list())"
).