Bonne utilisation de "parse", "eval", etc
Bonjour à tous,
J'ai besoin d'utiliser les fonctions de type "parse", "eval", etc, afin d'accéder aux différents éléments d'une liste au sein d'une boucle.
Comme un exemple vaut mieux qu'un long discours :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| L<-list(V1=1:5,V2=8:10,V3=c("a","b","c"))
L
$V1
[1] 1 2 3 4 5
$V2
[1] 8 9 10
$V3
[1] "a" "b" "c"
## exemple qui ne tourne pas ##
for(k in 1:3)
{
pp<-paste("L$V",k,sep="")
Z<-eval(parse(pp))
print(Z)
}
## erreur rencontrée ##
pp<-paste("L$V",1,sep="")
pp
[1] "L$V1"
Z<-eval(parse(pp))
Error in file(file, "r") : cannot open the connection
In addition: Warning message:
In file(file, "r") : cannot open file 'L$V1': No such file or directory |
Bien sûr, je sais que je pourrais accéder aux éléments de ma liste avec des "L[[k]]", mais ce n'est pas ce que je recherche ici.
J'ai l'impression que le problème vient peut-être du fait que les éléments de ma liste L ne sont pas stockés dans l'environnement global, mais je ne maîtrise pas bien la gestion des environnements.
Mon problème est peut- être trivial, mais je vous remercie par avance pour toute aide :)
Cordialement,
A.D.