Проверка целостности данных после импорта из xls в R с использованием RODBC - PullRequest
1 голос
/ 01 сентября 2011

Я использую RODBC для импорта файла xls с ~ 10000 строк и ~ 250 столбцов, используя следующий скрипт:

channel <- odbcConnectExcel(xls.file="s:/demo.xls")
demo <- sqlFetch(channel,"Sheet_1")
odbcClose(channel)

В процессе импорта я открыл и закрыл этот файл xls.

В качестве меры предосторожности я проверил количество строк в R и в самом файле xls, просто чтобы убедиться, что импорт не поврежден, и да, количество строк остается неизменным, поэтому я предполагаю, что процесс импорта OK.

Проблема возникает, когда я начинаю табулировать данные, я понимаю, что даже номера строк одинаковы, некоторые строки на самом деле повреждены, у меня есть UID внутри, и понимаю, что на более поздней части кадра данных, UID испорчен (например, одна строка дублируется дважды).

Я снова импортирую файл, не смею открывать или закрывать файл xls, и на этот раз все идет хорошо.

Я усвоил урок, что никогда не открывайте и не закрывайте файл xls, когда он читается RODBC, но как я могу быть уверен, что данные не будут испорчены, или чтобы убедиться, что я действительно импортировал набор данных без ошибка после импорта?

Спасибо.

P.S. Я подумываю об экспорте фрейма данных в csv и xls в csv, а затем сравнить контрольную сумму в качестве дополнительной меры, но есть ли другие способы?

1 Ответ

1 голос
/ 01 сентября 2011

Я использую функцию read.xls из пакета gdata (установка с использованием `install.packages (gdata) ').

Это позволяет вам читать из неоткрытого файла Excel, если я прав. Это оболочка для некоторых модулей Perl, поэтому она может зависеть от того, установлены ли они, если она работает для вас.

Цитирование руководства R для экспорта / импорта данных :

Пользователи Perl предоставили модуль OLE :: SpreadSheet :: ParseExcel и программу xls2csv.pl для преобразования электронных таблиц Excel 95–2003 в файлы CSV. Пакет gdata предоставляет базовую оболочку в своей функции read.xls. При наличии подходящих модулей Perl эта функция также может читать таблицы Excel 2007.

Как правило, я считаю, что самый безопасный способ передачи данных из Excel в R - это экспорт в csv.

...