2017-06-14 2 views
0

J'essaie d'écrire les données de chaque pays sur chaque feuille nommée avec ce pays dans un fichier xlsx. J'utilise le paquet xlsx dans r. J'ai essayéUtilisation de write.xlsx pour écrire différentes données sur différentes feuilles dans un fichier par une boucle for r

for (i in 1:noctry) { 
    write.xlsx(tab110rev[i,,], file="table.xlsx", sheetName = countrylist[i], 
       col.names=FALSE, row.names=FALSE) 
} 

noctry représente nombre de pays et ses 53
countrylist est une liste des pays avec des codes de pays qui sont des nombres.
tab110rev est un tableau qui a la structure de array(value, c(country, industry, year))

Le problème est qu'il ne produit qu'un fichier xlsx avec une seule feuille qui contient le dernier pays. Il devrait y avoir 53 feuilles, pas une seule. Je pense que le for-loop écrase au lieu de cumuler le résultat mais je n'ai aucune idée de résoudre ce problème.

Répondre

2

Je suppose que append = T devrait résoudre votre problème. Essayez ceci:

for (i in 1:noctry) { 
    write.xlsx(tab110rev[i,,], file="table.xlsx", sheetName = countrylist[i], 
       col.names=FALSE, row.names=FALSE, append = T) 
} 
+0

Vous êtes mon héros ... Merci beaucoup! – kim1298

+0

@ kim1298 Pas de problème, les gens s'entraident ici. Vous pouvez marquer la réponse que vous aimez en cliquant sur «accepter», afin que les autres sachent que le problème est résolu. –