Date Редакция Категория comp Теги R / Excel

Из .xls, .xlsx

Рабочие книги разных версий MS Excel имеют формат XLS или XLSX. Пакетов для импорта/экспорта данных из/в Excel существует великое множество. Один из них — xlsx:

library(xlsx)

# Cчитать первый лист из файла myexcel.xlsx
# Первая строка содержит имена колонок таблицы
mydata <- read.xlsx("c:/myexcel.xlsx", 1)

# Cчитать лист "sheet1" из файла myexcel.xlsx
mydata <- read.xlsx("c:/myexcel.xlsx", sheetName = "sheet1")

Заметьте, что в пути к файлу даже для Windows-систем используется /, а не \.

Из .csv

Формат CSV означает "Comma Separated Values" — "данные, разделенные запятыми". Если вам не нужны хранящиеся в рабочей книге Excel формулы, то удобнее сохранить ее в формате CSV, и уже из него импортировать в R:

# Первая строка содержит имена колонок таблицы,
# запятая — разделитель данных,
# строки данных не преобразовываются в факторы

mydata <- read.table("c:/mydata.csv", header=TRUE, 
            sep=",", stringsAsFactors=FALSE)

Функция read.table() имеет множество настроек, познакомиться с которыми можно с помощью справки ?read.table. Кроме read.table() существуют более узко специализированные функции для чтения данных, например, read.csv() и read.delim().

Текстовые файлы с разделителями табуляции

Еще один способ импорта данных из Excel при помощи промежуточного формата — текстовых данных, разделенных табуляцией:

mydata <- read.table("c:/mydata.csv", header=TRUE, 
            sep="\t", stringsAsFactors=FALSE)

О пакетах

Для работы с файлами Excel в R существует множество пакетов.

  • readxl, как ясно из названия, позволяет читать файлы Excel — как формате Excel '97 (XLS), так и в более современном OOXML (Excel 2007+, XLSX).
  • xlsx и XLConnect дают возможность не только читать, но также создавать и записывать указанные выше типы файлов. При этом все эти пакеты работают с файлами, расположенными на локальном компьютере (для скачивания файлов из Интернет есть встроенная функция download.file).
  • gdata позволяет одновременно скачивать и открывать файлы, но при этом требует установки интерпретатора Perl.
  • openxlsx — пожалуй наиболее продвинутый пакет для чтения и записи экселевских файлов. В отличие от xlsx и XLConnect не зависит от Java, а использует Rcpp. Позволяет в частности изменять стили ячеек рабочих книг Excel, добавлять в них графические файлы. Часто обновляется.


Комментарии

comments powered by Disqus