Добавление результатов r в один лист файла xlsx
Как я могу добавить свои результаты R в один лист файла xlsx? В настоящее время я работаю над веб-сканированием, где мне нужно удалить отзывы пользователей с веб-сайта и сохранить их на рабочем столе в формате xlsx. Мне нужно каждый раз изменять URL-адрес веб-сайта (поскольку отзывы пользователей находятся на разных страницах) в моем коде и сохранять результаты в одном листе файла xlsx.
Не могли бы вы помочь мне с кодом добавления выходных данных в одном листе файла xlsx? Ниже приведен код, который я использую: Каждый раз, когда мне нужно изменить URL-адрес веб-сайта и запустить тот же код, приведенный ниже, и сохранить соответствующий вывод в одном листе mydata.xlsx
library("rvest")
htmlpage <- html("http://www.glassdoor.com/GD/Reviews/Symphony-Teleca-Reviews-E28614_P2.htm?sort.sortType=RD&sort.ascending=false&filter.employmentStatus=REGULAR&filter.employmentStatus=PART_TIME&filter.employmentStatus=UNKNOWN")
proshtml <- html_nodes(htmlpage, ".pros")
pros <- html_text(proshtml)
pros
data=data.frame(pros)
library(xlsx)
write.xlsx(data, "D:/mydata.xlsx", append=TRUE)
2 ответа
Посмотри на пакет xlsx
,
?write.xlsx
покажет вам, что вы хотите. append=TRUE
это ключ.
========= РЕДАКТИРОВАТЬ, ЧТОБЫ ИСПРАВИТЬ =========
Как отметил @Jakub, append=TRUE
добавляет другой лист в файл.
========= РЕДАКТИРОВАТЬ ДОБАВИТЬ: ДРУГОЙ МЕТОД ==========
Другой способ - сохранить данные в .csv
файл, который можно легко открыть из Excel. В этом случае append=T
работает как положено (добавление к существующему листу):
write.table(df,"D:/MyFile.csv",append=T,sep=",")
Тривиальный, но супер-медленный способ:
Если вам нужно только добавить (несколько) строк в существующий файл Excel, и у него есть только один лист, к которому вы хотите добавить, вы можете просто сделать простой шаг read => overwrite:
SHEET.NAME <- '...' # fill in with yours
existing.data <- read.xlsx(file, sheetName = SHEET.NAME)
new.data <- rbind(existing.data, data)
write.xlsx(new.data, file, sheetName = SHEET.NAME, row.names = F, append = F)
Замечания:
- Это довольно медленно, будет работать только в небольших масштабах
- read.xlsx - медленная функция. Попробуйте read.xlsx2, чтобы сделать это намного быстрее (см. Разницу в документации)
- Если ваш процесс R запускается один раз и продолжает работать в течение длительного времени, очевидно, не делайте так (чтение и перезапись файла в этом случае нелепы)