Есть ли способ проанализировать строку с аргументами в список языковых объектов? Например:Разбор строки с аргументами (точек)
> query <- "mpg, cyl, hp:vs"
> eval(parse(text=paste0("dplyr:::dots(", query, ")")))
[[1]]
mpg
[[2]]
cyl
[[3]]
hp:vs
Но это некрасиво, может привести к инъекции кода, и т.д. Есть ли способ, чтобы разобрать query
часть отдельно без инъекций в R-код? Я бы очень хотел использовать собственный парсер и избегать ручной модификации кода с помощью строковой манипуляции, потому что аргументы могут содержать код или запятую сами по себе. Например:
query2 <- "foo, 'flip,flop', function(x){print('foo', x)}"
eval(parse(text=paste0("dplyr:::dots(", query2, ")")))
должен давать:
[[1]]
foo
[[2]]
[1] "flip,flop"
[[3]]
function(x) {
print("foo", x)
}