Я импортирую таблицы 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()
только столбцы, для которых его догадки не являются желательными.
Буду признателен за любые предложения.
Спасибо заранее.