Je me demande s'il existe un moyen simple de produire une liste de variables à l'aide d'une boucle for et de donner sa valeur.
for(i in 1:3)
{
noquote(paste("a",i,sep=""))=i
}
Dans le code ci - dessus, je tente de créer a1
, a2
, a3
qui assignent aux valeurs de 1, 2, 3. Cependant, R donne un message d'erreur. Merci de votre aide.
names
paramètre et plus tard de l'utiliser, de laattach
convertir ou de la convertir en un environnement aveclist2env
et à l'eval
intérieur. Sans boucles, analyse ou autres trucs laids.list2env
est une fonction relativement nouvelle. Et encore, il produira les variables dans un certain environnement, lorsque l'OP veut obtenir les variables dans l'environnement supérieur. Donc la laideur reste toujours :)Réponses:
Vous recherchez
assign()
.donne
et
Mise à jour
Je suis d'accord que l'utilisation de boucles est (très souvent) un mauvais style de codage R (voir la discussion ci-dessus). En utilisant
list2env()
(merci à @mbq pour l'avoir mentionné), ceci est une autre solution à la question de @Han Lin Shang:la source
Si les valeurs sont en vecteur, la boucle n'est pas nécessaire:
En remarque, c'est la raison pour laquelle j'aime R.
la source
library(fortunes)
fortune(106)
parse
après avoir lu les pages d'aide R. Je suis d'accord que c'est parfois une surpuissance, par exemple enformula
gestion, mais je l'ai trouvé très utile. Notez que je ne peux pas repenser la question comme suggéré dans la fortune, puisque je ne l'ai pas posée.