Чтение данных с разделителями табуляции в R

Я пытаюсь прочитать большой файл с разделителями табуляции в р.

сначала я попытался это:

data <- read.table("data.csv", sep="t")

но он читает некоторые числовые переменные в качестве факторов

поэтому я попытался прочитать данные на основе того, какой тип я хочу, чтобы каждая переменная была такой:

data <- read.table("data.csv", sep="t", colClasses=c("character","numeric","numeric","character","boolean","numeric"))

но когда я пытаюсь это дает мне ошибку:

ошибка сканирования (file, what, nmax, sep, dec, quote, skip, nlines, na.веревка, : scan () ожидаемый ' a реальный', у '"4"'

Я думаю, что может быть, что есть кавычки вокруг некоторых числовых значений в исходном raw-файле, но я не уверен.

2 ответов


не видя ваших данных, у вас есть одна из нескольких вещей: у вас нет всех вкладок, разделяющих данные; есть встроенные вкладки в отдельных наблюдениях; или литна других.

способ, которым вы можете разобраться в этом, - установить options(stringsAsFactors=FALSE) затем используйте первую строку.

проверить str(data) и попытаться выяснить, какие строки являются виновниками. Причина, по которой некоторые числовые значения читаются как факторы, заключается в том, что в этом столбце есть что-то, что R интерпретирует как символ, и таким образом он принуждает весь столбец к характеру. Обычно требуется некоторое копание, но проблема почти наверняка связана с вашим входным файлом.

Это общая проблема данных munging, удачи!


x <- paste("'",floor(runif(10,0,10)),"'",sep="")
x

 [1] "'7'" "'3'" "'0'" "'3'" "'9'" "'1'" "'4'" "'8'" "'5'" "'8'"

as.numeric(gsub("'", "",x))

 [1] 7 3 0 3 9 1 4 8 5 8