Чтение данных с разделителями табуляции в 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