2017-07-20 4 views
0

Actuellement, j'ai un problème avec la fonction png() à l'intérieur d'une boucle for. Voici un exemple simplifié de code. Le vecteur représente les valeurs d'indicateur pour le fichier de forme multiple que j'essaie d'itérer, de tracer et d'enregistrer dans un png.png() erreur d'itération dans R

match <- c(1,2,3,4,5,6,7,8,9) 
for(m in 1:length(match)){ 
    png("WMA", m, "/_example_plot.png") 
    p <- c(plot(match[m])) 
    dev.off() 
} 

Je reçois l'erreur ci-dessous de mon script:

erreur dans le commutateur (unités, in = res, cm = res/2,54, mm = res/25.4, px = 1) *: argument non-numérique à l'opérateur binaire

Traceback ci-dessous

2..geometr y (largeur, hauteur, unités, res)

1.png ("WMA", m, "/_example_plot.png")

Le code et le chemin tracé de fichier excellent travail eux-mêmes. J'ai testé toutes mes fonctions png() en utilisant certaines des valeurs des indicateurs dans le vecteur de correspondance. Cependant, lorsque je parcoure chaque valeur de l'indicateur, je reçois l'erreur.

Cet article stackoverflow me porte à croire que je devrais créer une fonction pour définir la géométrie de png(). Cependant, je ne suis pas sûr de savoir comment faire cela/pourquoi je devrais le faire. Toutes les informations sont appréciées comme toujours :)

+3

Ne devrait-il pas s'agir de: 'png (paste0 (" WMA/", m," _example_plot.png "))'? Donc, tous les png sont stockés dans la carte WMA comme 1_example_plot.png, 2_example_plot.png, etc. – Florian

+0

Consultez aussi 'ggsave' – CPak

+0

@Florian Oui, merci! – DPek

Répondre

0

Je crois que le problème est que vous voulez créer un nom changeant de PNG. L'erreur est que vous ne concaténéz pas le nom en utilisant la fonction paste0. C'est: png(paste0("WMA", m, "/_example_plot.png")).
Dans votre code la fonction PNG avait un premier argument "WMA", un deuxième argument m et un troisième argument "/_example_plot.png").

+0

Merci! Travaillé parfaitement – DPek