Перевод. Оригинал: XLConnect : read, write and manipulate Microsoft Excel files from within R
XLConnect - это пакет, который позволяет читать, писать и редактировать файлы Microsoft Excel из R.
Для чтения и записи файлов Excel не требуется установка Microsoft Excel или других специальных драйверов. Единственное требование - это последняя версия Java Runtime Environment (JRE).
Чтобы начать, посмотрите описание пакета, многочисленные демонстрации, доступные через demo(package = "XLConnect") или просмотрите справочное руководство.
Установка
Системные требования
R, version 2.10.0 или выше
Java Runtime Environment (JRE), version 6.0 или выше
если у вас нет JRE на вашем компьютере, вы должны установить его:
в Linux/Ubuntu используйте команду:
apt-get install openjdk-6-jdk
Установка пакета
XLConnect можно легко установить с помощью команды install.packages () в сеансе R:
install.packages("XLConnect")
Запись файлов Excel:
#загрузка пакета require(XLConnect) #создание рабочей книги Excel. Могут использоваться оба формата: .xls и .xlsx
wb = loadWorkbook("XLConnectExample1.xlsx", create = TRUE) #Создание листов в рабочей книге Excel createSheet(wb, name = "chickSheet") #запись в листы рабочей книги Excel: #запись данных data frame ChickWeight в chickSheet writeWorksheet(wb, ChickWeight, sheet = "chickSheet", startRow = 3, startCol = 4) #сохранение рабочей книги в файл: saveWorkbook(wb)
Запись листа одной командой
Четыре строки кода, представленные в предыдущем примере, можно заменить одним вызовом функции writeWorksheetToFile():
require(XLConnect) writeWorksheetToFile("XLConnectExample2.xlsx", data = ChickWeight, sheet = "chickSheet", startRow = 3, startCol = 4)
writeWorksheetToFile() загружает рабочую книгу, создает лист и, наконец, сохраняет рабочую книгу. Когда вам нужно записать только один лист в файл Excel, это, вероятно, лучший выбор. Однако если вам нужно написать больше листов, использование функций, представленных в предыдущем примере, будет более эффективным. Это потому, что вызов writeWorksheetToFile() несколько раз будет открывать, записывать и закрывать файл Excel при каждом вызове. Использование функций в первом примере, напротив, позволит вам открыть рабочую книгу, выполнить несколько операций с ней и только затем закрыть ее.
Чтение из листа Excel
Для этого мы будем использовать файл, созданный в приведенном выше примере. Мы устанавливаем аргумент endRow равным 10, чтобы ограничить результат. Мы устанавливаем остальные аргументы, определяющие границы как 0, чтобы они задавались автоматически.
Обратите внимание, что в качестве альтернативы присвоению аргументу sheet имени листа, из которого мы хотим прочитать, "chickSheet", мы также можем указать его с индексом листа, как sheet = 1.
Базовые функции
#Загрузка пакета require(XLConnect) #Загрузка рабочей книги Excel. Могут использоваться файлы .xls и .xlsx. wb = loadWorkbook("XLConnectExample1.xlsx", create = TRUE) #чтение листов рабочей книги Excel data = readWorksheet(wb, sheet = "chickSheet", startRow = 0, endRow = 10, startCol = 0, endCol = 0) #вывод данных data
weight Time Chick Diet 1 42 0 1 1 2 51 2 1 1 3 59 4 1 1 4 64 6 1 1 5 76 8 1 1 6 93 10 1 1 7 106 12 1 1
Чтение из листа Excel одним вызовом
require(XLConnect) data = readWorksheetFromFile("XLConnectExample1.xlsx", sheet = "chickSheet", startRow = 0, endRow = 10, startCol = 0, endCol = 0)
Добавление изображения на лист, используя именованный диапазон
# Загружаем рабочую книгу (создаем, если она не существует) wb = loadWorkbook("add_image_to_excel.xls", create=TRUE) # создаем лист с именем 'boxplot' createSheet(wb, name = "boxplot") # Создаем именованный диапазон 'boxplot', ссылающийся на лист 'boxplot' createName(wb, name = "boxplot", formula = "boxplot!$B$2") # Создаем график в R на устройстве png png(filename = "boxplot.png", width = 800, height = 600) boxplot(count ~ spray, data = InsectSprays, col = "lightgray") dev.off() # Записываем изображение в именованный диапазон addImage(wb, filename = "boxplot.png", name="boxplot", originalSize = TRUE) # Сохраняем рабочую книгу saveWorkbook(wb)
В результате получаем следующий график, записанный в файл Excel.
Комментариев нет:
Отправить комментарий