2 votes

pourquoi write.xlsx2 ne stocke pas des feuilles de calcul distinctes ?

J'essaie d'enregistrer des cadres de données dans des feuilles de calcul distinctes au sein d'un système de gestion des données. .xlsx document :

library(xlsx)

df1 <- data.frame(a=c("a", "b", "c"), b=c(3,4,5))
df2 <- data.frame(r=c(1,2,3), d=c("a", "b", "c"))

# append into corresponding spreadsheet

write.xlsx2(as.data.frame(df1),
            "path/dummy.xlsx",  
            sheetName = "TestSheet1", 
            col.names = T, 
            row.names = F, 
            append = F)

write.xlsx2(as.data.frame(df2),
            "path/dummy.xlsx",  
            sheetName = "TestSheet2", 
            col.names = T, 
            row.names = F, 
            append = F)

Cependant, write.xlsx2() supprimer "TestSheet1" :

enter image description here

L'idée est d'avoir deux feuilles de calcul distinctes pour deux cadres de données distincts, et si possible d'ajouter de nouvelles données dans les cadres de données des feuilles de calcul tout en conservant les mêmes feuilles de calcul.

Comment pourrais-je accomplir cette tâche ?

2voto

akrun Points 148302

C'est juste que le append = FALSE dans les deux cas, il écrase donc le fichier entier. Changez-le en TRUE et ça marche. En outre, une bonne pratique consiste à spécifier TRUE/FALSE au lieu de T/F car cela peut entraîner des erreurs ( F est une fonction dans collapse . De plus, nous pouvons nommer les objets avec T , F alors que cela ne peut être fait avec TRUE/FALSE )

write.xlsx2(as.data.frame(df2),
            "path/dummy.xlsx",  
            sheetName = "TestSheet2", 
            col.names = TRUE, 
            row.names = FALSE, 
            append = TRUE)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X