2014-06-17 2 views
-2

J'ai plusieurs trames de données nommées kpi1, kpi2, kpi3, ... .Je veux créer une trame de données qui inclut certaines lignes de chacune de ces trames de données (qui contiennent certaines valeurs). J'ai le code pour extraire ce que je veux de chacun d'eux, mais je voudrais écrire une boucle pour sélectionner chacune de ces trames de données à chaque itération, effectuer l'extraction et passer au fichier suivant. Donc, dans la première itération, je peux faire des choses avec kpi1, deuxième itération avec kpi2, et ainsi de suite.pour que la boucle lise le même nom avec un numéro différent

Nous vous remercions à l'avance

Répondre

1

Vous pouvez utiliser mget pour les recueillir dans une liste, puis utilisez lapply ou sapply pour traiter chacun.

Ou vous pouvez utiliser get dans la boucle. Utilisez sprintf ou paste0 pour créer la liste des noms.

out1 <- lapply(mget(sprintf('kpi%d', 1:25)), function(df) df[1:3, ]) 
out2 <- do.call(rbind, out1) 

En général, il est préférable de garder plusieurs trames de données que vous serez itérer sur comme celui-ci dans une seule liste plutôt que d'avoir chacun dans sa propre trame de données dans l'environnement mondial.

+0

Merci beaucoup pour la réponse. J'ai essayé d'utiliser Lappply comme vous l'avez suggéré, mais la fonction que je veux utiliser, elle-même change à chaque itération, c'est-à-dire je veux sous-ensemble kpi1, l'ajouter à out1, sous-ensemble kpi2, ajouter jusqu'à la fin. Pouvez-vous me guider à travers cela? –

Questions connexes