Я импортирую таблицы xlsx 2007 в R 3.2.1patched с помощью пакета readxl 0.1.0 под Windows 7 64. Размер таблиц составляет порядка 25 000 строк на 200 столбцов.
Функция read_excel() работает. Моя единственная проблема заключается в том, что его назначение класса столбца (типа данных) для малозаселенных столбцов. Например, данный столбец может быть NA для 20 000 строк, а затем примет значение символа в строке 20,001. read_excel() по умолчанию используется тип столбца с числовым номером при сканировании первых n строк столбца и нахождении только NAs. Данные, вызывающие проблему, являются символами в столбце, присвоенном числовой. Когда достигнут предел ошибки, выполнение останавливается. Мне действительно нужны данные в разреженных столбцах, поэтому установка предела ошибки выше не является решением.
Я могу определить неприятные столбцы, просмотрев брошенные предупреждения. И read_excel() имеет возможность утверждать тип данных столбца, задавая аргумент col_types в соответствии с документами пакета:
Либо NULL для угадывания из электронной таблицы или символьного вектора, содержащего blank, numeric, date или text.
Но означает ли это, что я должен построить вектор длины 200, заполненный почти в каждой позиции с помощью blank и text в нескольких позициях, соответствующих столбцам-нарушителям?
Вероятно, это можно сделать в пару строк кода R. Создайте вектор требуемой длины и заполните его blank s. Возможно, еще один вектор, содержащий числа столбцов, которые должны быть привязаны к text, а затем... Или, возможно, можно вызвать для read_excel() только столбцы, для которых его догадки не являются желательными.
Буду признателен за любые предложения.
Спасибо заранее.