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
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
eval(parse(...))
.Ici des dragons.
Voir, par exemple: