2010-07-06 6 views
3

J'ai une trame de données dans R avec POSIXct variable sessionstarttime. Chaque ligne est identifiée par une variable d'ID entier d'un emplacement spécifié. Le nombre de lignes est différent pour chaque emplacement. Je conspire abaque simplement par:Boucle dans R pour créer et enregistrer des séries de graphiques ggplot2 avec les noms spécifiés

myplot <- ggplot(bigMAC, aes(x = sessionstarttime)) + geom_freqpoly() 

Est-il possible de créer une boucle qui va créer et enregistrer cette parcelle pour chaque emplacement séparément?
De préférence avec un nom de fichier identique à la valeur de la variable ID?
Et de préférence avec la même échelle de temps pour chaque parcelle?

Répondre

7

Pas tout à fait sûr de ce que vous demandez, mais vous pouvez faire une des deux choses.

a) Vous pouvez enregistrer chaque parcelle individuelle dans une boucle avec un nom unique basé sur ID comme ceci:

ggsave(myplot,filename=paste("myplot",ID,".png",sep="")) # ID will be the unique identifier. and change the extension from .png to whatever you like (eps, pdf etc). 

b) Tout attribuer à chaque parcelle à un élément d'une liste. Ensuite, écrivez cette liste sur le disque en utilisant save Cela rendrait très facile le chargement et l'accès à n'importe quel intrigue à un moment ultérieur.

+0

Merci Maiasaura. Avait plus ou moins dans la même direction avec mes tentatives. – radek

1

Je ne sais pas si je comprends ce que vous voulez faire. De ce que je suppose, je suggère d'écrire une fonction simple qui sauve l'intrigue. puis utilisez lapplication (yourdata, yourfunction, ...). Puisque lapapply peut être utilisé pour les listes, il n'est pas nécessaire que le nombre de lignes soit égal.

HTH

utiliser quelque chose comme ceci dans votre fonction:

ggsave(filename,scale=1.5) 
+0

Merci ran2. Oui, la lapply pourrait être une façon d'aller. Je vais y jeter un coup d'oeil. – radek

Questions connexes