Текстовый файл с разделителями табуляции, который фактически является экспортом (используя bcp) таблицы базы данных, имеет такую форму (первые 5 столбцов):
102 1 01 e113c 3224.96 12
102 1 01 e185 101127.25 12
102 2 01 e185 176417.90 12
102A 3 01 e185 26261.03 12
Я попытался импортировать его в R с помощью команды, подобной
data <- read.delim("C:\\test.txt", header = FALSE, sep = "\t")
Проблема в том, что 3-й столбец, который на самом деле является полем varchar (буквенно-цифровой), по ошибке читается как целое число (так как в столбце нет букв), а начальные нули исчезают. То же самое произошло, когда я импортировал данные непосредственно из базы данных, используя odbcConnect. Снова этот столбец читался как целое число.
str(data)
$ code: int 1 1 1 1 1 1 6 1 1 8 ...
Как правильно импортировать такой набор данных в R, чтобы можно было снова безопасно заполнить эту таблицу базы данных после некоторых манипуляций с данными?
EDIT
Я сделал это, добавив следующий параметр в read.delim
colClasses = c("factor","integer","factor","factor","numeric","character","factor","factor","factor","factor","integer","character","factor")
Вы бы предложили "характер" или "фактор" для полей varchar?
Можно ли использовать «символ» для даты и времени?
Что я должен сделать, чтобы иметь возможность читать числовое поле, подобное этому 540912.68999999994, в точности как есть, а не как 540912.69?
Я бы хотел - как можно более автоматически - создать этот colClasses
вектор, в зависимости от типов данных, определенных в схеме соответствующей таблицы.