Comment puis-je ajouter des données à partir d'un bloc de données dans la R d'une feuille Excel qui existe déjà
J'ai créé des dizaines de blocs de données de R et souhaitez ajouter tout d'une feuille dans un fichier Excel.
Voici deux pages que j'ai regardé dans une tentative de trouver une réponse (je n'ai pas de 10 de la réputation donc je ne peux pas coller tous les quatre page web url, j'ai visité):
Écrire des données dans un fichier Excel à l'aide de package R xlsx
L'auteur dit: "Vous pouvez également ajouter le dataframes à un endroit de départ dans la feuille en utilisant la startRow et début arguments à la addDataFrame fonction."
Voici la suggestion de code:
workbook.sheets workbook.test addDataFrame(x = sample.dataframe, sheet = workbook.test,
row.names = FALSE, startColumn = 4) # write data to sheet starting on line 1, column 4
saveWorkbook(workbook.sheets, "test.excelfile.xlsx") # and of course you need to save it.
Basé sur cette suggestion, c'était ma tentative de RStudio:
addDataFrame(df_fl1, sheet = "AllData2.xlsx", startRow = 712)
Ce fut la R de la sortie:
Erreur dans la feuille de$getWorkbook : $ opérateur n'est pas valide pour l'vecteurs
J'ai aussi essayé cette page:
Tutoriel sur la Lecture et l'Importation de Fichiers Excel dans R
"Si, toutefois, vous voulez écrire le bloc de données à un fichier qui existe déjà, vous pouvez exécuter la commande suivante:"
write.xlsx(df,
"<name and extension of your existing file>",
sheetName="Data Frame"
append=TRUE)
write.xlsx(df_fl3, "AllData2.xlsx", sheetName="Salinity1", append=TRUE)
J'ai essayé ce code et il écrasait les données qui ont déjà été dans la feuille. Comment puis-je ajouter des données à partir des blocs de données dans une feuille Excel?
XLConnect
comme un appendWorksheet
fonction qui devrait faire le travail.OriginalL'auteur Regulus | 2016-01-06
Vous devez vous connecter pour publier un commentaire.
Ajoutant à une feuille de calcul Excel est un peu de douleur. Au lieu de cela, lire l'ensemble de vos données Excel des fichiers dans R, de les combiner dans R, puis d'écrire le combiné unique bloc de données dans un nouveau fichier Excel (ou d'écrire dans un fichier csv si vous n'avez pas besoin des données dans un classeur Excel). Voir le code ci-dessous pour la voie de la facilité et de la dure.
Façon très simple: Faire tout le travail dans
R
et enregistrer un combiné unique bloc de données à la finPar exemple, si l'ensemble de vos données Excel fichiers sont dans le répertoire de travail en cours et la première feuille de calcul dans chaque fichier Excel contenant les données, vous pouvez effectuer les opérations suivantes:
Puis de les combiner en un seul bloc de données et d'écriture sur le disque:
Dure: Ajouter des trames de données successives d'un pré-existante de la feuille de calcul Excel
Créer une liste de trames de données que nous voulons écrire à Excel (comme discuté ci-dessus, dans votre cas d'utilisation, vous pourrez lire vos fichiers de données dans une liste de R). Nous allons utiliser le haut-
iris
bloc de données à des fins d'illustration ici:À écrire chaque bloc de données à une seule feuille de calcul Excel, tout d'abord, créez un classeur Excel et de la feuille de calcul où nous voulons écrire les données:
Maintenant ajouter tous les autres blocs de données à l'aide d'une boucle. Incrément
startRow
à chaque fois, de sorte que la prochaine trame de données est écrit dans l'emplacement correct.Enregistrer le classeur:
addDataFrame
est utile si vous voulez mise en page de divers tableaux de synthèse dans différentes parties d'une feuille de calcul Excel et de faire tout cela belle présentation. Toutefois, si vous êtes tout simplement en combinant les données brutes en un seul fichier de données, je pense que c'est beaucoup plus facile à faire tout le travail dans la R et puis il suffit d'écrire le combiné bloc de données à une feuille de calcul Excel (ou un fichier csv) à la fin.Dure: j'ai essayé <code>df2.liste = split("dataframe.RData", "dataframe2.RData")</code> ensuite créé la feuille et utilisé addDataFrame() et saveWorkbook. Mais que seulement crée une feuille de calcul avec le dataframe nom dans le coin supérieur gauche de la feuille. J'ai également essayé avec les données de fichiers à plat au lieu de la dataframes. Je vais aussi essayer le addWorkSheet code sur cette page: [lien]inside-r.org/packages/cran/xlconnect/docs/appendWorksheet[/...
Pour la "voie facile": à Partir d'un répertoire donné, vous pouvez obtenir tous les fichiers dans tous les sous-répertoires, y compris le chemin d'accès complet en faisant, par exemple,
list.files(pattern="xlsx", full.names=TRUE, recursive=TRUE)
. Pour la dure, lasplit
fonction était juste pour créer la liste d'exemples de trames de données à des fins d'illustration. Avec des données réelles, on lira les fichiers de la même manière que vous le faire d'une façon ou de l'autre.Aussi, votre code pour la fonction de répartition ne semble pas correcte. Le premier argument doit être un bloc de données (c'est à dire, déjà chargé dans R comme un objet dans votre environnement mondial) et le deuxième argument doit être une catégorie de la colonne à partir de ce bloc de données.
OriginalL'auteur eipi10