en PHP Vous pouvez accéder à la fois aux noms et aux valeurs d'un tableau dans A pour la boucle avec y a-t-il comparable dans R, lors de la boucle sur les listes nommées? P> < / p>
3 Réponses :
Utilisation des données factices et un exemple de contrefaçon idiot
ll2 <- vector("list", length(ll))
nams <- names(ll)
for(i in seq_along(ll)) {
ll2[[i]] <- paste(nams[i], "=", paste(ll[[i]], collapse = ", "))
}
ll2
R> ll2
[[1]]
[1] "A = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10"
[[2]]
[1] "B = A, B, C, D, E, F, G, H, I, J"
[[3]]
[1] "C = a, b, c, d, e, f, g, h, i, j"
Pour obtenir le nom d'une liste que vous utilisez simplement la plupart des fonctions * Appliquer va renvoyer des valeurs de manière appropriée si La liste a été nommée pour commencer. P> noms (liste) code>.
Voici un moyen plus simple de le faire:
for (name in names(myList)) {
print(name)
print(myList[[name]])
}
Pouvez-vous être un peu plus spécifique quant à savoir si vous êtes en boucle sur une liste avec un
pour code> boucle ou avec quelque chose commelapply code> dans r? Peut-être un exemple très fondamental (en code R)?@Joran: questions clarifiées. Oui, en boucle sur les listes. Je ne peux pas utiliser la marquage dans cette instance spécifique. J'ai posé une question connexe ici: Stackoverflow.com/Questtions/11112842/...
D'accord; Vous obtenez uniquement le Vanilla
pour code> Syntaxe de boucle dans R. Généralement, vous vous référez à chaque pièce (nom + élément) en sous-sortisant soitnoms (myList) code> ouMyList code> avec votre index de bouclei code>.@Joran: Oui, OK, peut-être que c'est la seule réponse. Je viens de réaliser que pour les listes de listes (un exemple de cette affaire), vous pouvez utiliser plusieurs fonctions * Appliquer, par exemple
résultat <- labraque (soméliquement, active, appliquer, 2, somme) code> fonctionne avec un Liste des listes de matrices. Mais cela ne fonctionnera pas si vous devez appliquer un non-* Appliquer une fonction code> quelque part au milieu (par exemple,leaply (soméliste, as.data.frame, active, appliquer, 2, somme) code> ne fonctionne pas).