Похоже, что команда fread
обнаружит тип в определенном столбце, а затем назначит для этого столбца тип низший , который он может, на основе содержимого этого столбца. Из фред документации:
Выборка из 1000 строк используется для определения типов столбцов (100 строк
от 10 баллов). Самый низкий тип для каждого столбца выбирается из
упорядоченный список: логический, целое, целое, 64, двойной, символ. This
позволяет fread распределять точное количество строк,
столбцы правильного типа, один раз. Файл может конечно еще
содержат данные более высокого типа в строках вне выборки. В этом
В этом случае типы столбцов увеличиваются при чтении, а данные считываются
приведены предыдущие строки.
Это означает, что если у вас есть столбец с в основном числовыми значениями типа, он может назначить столбец как numeric
, но затем, если он найдет какие-либо значения типа character
позже, он приведет к тому, что все прочитанное до этой точки будет character
тип.
Вы можете прочитать об этих преобразованиях типов здесь , но, судя по всему, попытка преобразовать столбец character
в numeric
для значений, которые не являются числовыми, приведет к эти значения преобразуются в NA
, или двойное значение может быть преобразовано в целое число, что приводит к потере точности.
С такой потерей точности вы можете согласиться, но fread
не позволит вам выполнить это преобразование, используя colClasses
. Возможно, вы захотите войти и удалить нечисловые значения самостоятельно.