Я пытаюсь создать код, который очень удобен для пользователей, не знакомых с R. Код разработан так, что логические критерии можно легко манипулировать, основываясь на том, что ищет пользователь. Поэтому вместо того, чтобы заставить пользователя работать в операторах if, я хотел бы просто создать символьную переменную, содержащую логический оператор в верхней части кода (т.е. x <- "a > 2"
).
Затем я хотел бы оценить оператор if, используя эту символьную переменную, содержащую логический оператор. Вот основная идея:
a <- 3
x <- "a > 2"
if(x)TRUE
Это, очевидно, возвращает ошибку, что аргумент не интерпретируется как логический, поскольку он видит x как символьную строку "a > 2."
Я знаю, что могу просто сделать:
a <- 3
x <- as.logical(a > 2)
if(x)TRUE
Однако в случае того, над чем я работаю, было бы предпочтительнее сначала хранить эти логические операторы как символы. И as.logical(), похоже, не способен преобразовывать символы (т.е. as.logical("a > 2")
) не работает.
Мой вопрос: есть ли какая-то функция, которую я могу положить через x, которая позволяет R рассматривать ее не как символ, а скорее как логическое выражение? Другими словами, как я могу просто отбросить кавычки, чтобы логический оператор мог работать внутри оператора if?