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 comme
lapply 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 soit
noms (myList) code> ou
MyList code> avec votre index de boucle
i 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).