Я хочу сделать сопоставление с образцом переменных в формуле. идеальное решение должно работать следующим образом: formula <- 'variable_1+variable_2*variable_3-variable_4/variable_5 + 456'
и вывод должен быть variable_1 , variable_2 , variable_3 , variable_4 , variable_5 .
Примечание: имя переменной может содержать символ, подчеркивание (_), только цифры и операции ограничены +, -, *, /. Формула также может содержать константы (как здесь это 456). Вывод должен содержать только имена переменных и игнорировать любые числовые константы.
Я пробовал приведенные ниже коды. Я смог проверить только имя переменной, содержащей только символ , и операция минус (-) также не работает.
formula <- "variableX +variableY*VariableZ"
strapplyc(gsub(" ", "", format(formula), fixed = T), "-?|[a-zA-Z_]+", simplify = T, ignore.case = T)
даетниже вывода
[,1]
[1,] "variableX"
[2,] ""
[3,] "variableY"
[4,] ""
[5,] "VariableZ"
, что является правильным, НО, когда я включаю минус (-), strapplyc
дает неправильные результаты formula <- "variableX -variableY"
strapplyc(gsub(" ", "", format(formula), fixed = T), "-?|[a-zA-Z_]+", simplify = T, ignore.case = T)
дает ниже вывода
[,1]
[1,] "variableX"
[2,] "-"
[3,] "variableY"
IБуду признателен, если кто-нибудь может помочь мне в идеальном решении.