R readxl: Как указать типы столбцов для выбранных столбцов

У меня есть таблица Excel на 80 столбцов. Я хочу прочитать только четыре столбца. Положение столбцов может измениться, поэтому я хотел бы выбирать их по имени столбца. Я делаю это

df <- read_xlsx("dat")[c("a", "b", "c", "d")]

Однако d ошибочно угадывается как логический, хотя на самом деле это фактор с четырьмя уровнями. Тип столбцов может быть установлен col_type, но параметры этой функции относятся к исходным 80 столбцам. Таким образом, чтобы установить правильный тип, мне нужно знать позицию столбца, чего я не знаю. Даже если установка 80 типов столбцов (вероятно, с rep()) кажется обременительной, хотя мне нужно только четыре из них. Чтение всего в виде текста также не работает, потому что один столбец находится в формате дата: время, который этим зашифровывается. Есть у кого-нибудь идеи как это решить?

На моем компьютере не работают пакеты с java и perl.


person 00schneider    schedule 10.01.2019    source источник


Ответы (1)


fread находится в пакете data.table и обеспечит нужную вам функциональность.

Популярный пакет data.table, описываемый как «быстрый и удобный инструмент для завершения работы с файлами», чрезвычайно полезен и прост в использовании. Его функция fread () предназначена для импорта данных из обычных файлов с разделителями прямо в R, без каких-либо обходных путей или ерунды. https://www.datacamp.com/community/tutorials/importing-data-r-part-two

df<-fread("path",select=c("col1","col2",..........))
person Amit Maheshwari    schedule 10.01.2019
comment
Почему следует использовать такой подход? Пожалуйста, добавьте пояснения к вашему коду, чтобы другие могли извлечь из него уроки. - person Nico Haase; 10.01.2019
comment
привет, да с функцией fread из пакета data.table может читать любой тип файла - person Amit Maheshwari; 10.01.2019
comment
Функция fread () весьма полезна, ее можно использовать для быстрого чтения большого набора данных. - person Amit Maheshwari; 10.01.2019
comment
Можете показать мне пост или рабочий пример, где читаются файлы .xlsx? Потому что, согласно другим сообщениям, например stackoverflow.com/ questions / 48313025 /, он не может читать файлы xlsx, а Google не привел никаких примеров. Он также возвращает ошибку, когда я пытаюсь прочитать свой файл с помощью fread (). - person 00schneider; 10.01.2019