Convertir un type de caractère en un

Je suis en train de créer un code qui est très convivial pour quelqu'un de pas très familiers avec R. Le code est conçu de sorte que les critères logiques peuvent être facilement manipulés, basé sur ce que l'utilisateur recherche. Donc au lieu de forcer l'utilisateur à travailler dans le if, je voudrais juste créer une variable de caractère contenant la logique de l'énoncé en haut du code (c'est à dire x <- "a > 2").

Alors j'aimerais évaluer une instruction si l'aide de ce caractère variable contenant un opérateur logique. Voici l'idée de base:

a <- 3
x <- "a > 2"
if(x)TRUE

De toute évidence, cela renvoie une erreur que l'argument n'est pas interprétable en tant que logique, parce qu'il les considère x comme la chaîne de caractères "> 2."

Je sais que je pourrais tout simplement faire:

a <- 3
x <- as.logical(a > 2)
if(x)TRUE

Toutefois, dans le cas de ce que je suis en train de travailler sur, il serait préférable de d'abord stocker ces déclarations logiques comme des personnages. Et comme.logique() ne semble pas être en mesure de convertir des caractères (c'est à dire as.logical("a > 2")) ne fonctionne pas.

Ma question: Est-il une fonction que je peux mettre x qui permet de R de vue non pas comme un personnage, mais plutôt dans une logique d'affirmation? En d'autres termes, comment puis-je supprimer les guillemets afin que la logique de l'énoncé peuvent travailler à l'intérieur d'une instruction if?

source d'informationauteur sph21