Je suis curieux de savoir si R peut utiliser sa eval()
fonction pour effectuer des calculs fournis par exemple par une chaîne.
Ceci est un cas courant:
eval("5+5")
Cependant, au lieu de 10, j'obtiens:
[1] "5+5"
Toute solution?
eval(parse(text = *))
fausses solutions.
QQ = c('11','12','13','21','22','23')
c'est-à-dire: QQ = c (..., 'ij', ..) avec i, j variant sur une plage qui peut varier d'une exécution à l'autre. Pour cela et des exemples similaires, je peux écrire le script en tant que paste( "QQ = c('", paste(rep(1:2,each=3),1:3, sep="", collapse="','"), "')",sep="")
, et l'option eval(parse(text=...))
crée le vecteur QQ dans l'environnement de travail conformément au script. Quelle serait la bonne façon pour le codeur R de le faire, sinon avec "text = ..."?
string
? La réponse de Martin Mächler devrait mériter beaucoup plus de votes positifs.