Чтение вкладки Разграниченные данные в R
Я пытаюсь прочитать большой файл с разделителями табуляции в R.
Сначала я попробовал это:
data <- read.table("data.csv", sep="\t")
Но он считывает некоторые числовые переменные в качестве факторов
Итак, я попытался прочитать данные в зависимости от того, какой тип я хочу, чтобы каждая переменная выглядела так:
data <- read.table("data.csv", sep="\t", colClasses=c("character","numeric","numeric","character","boolean","numeric"))
Но когда я пытаюсь это сделать, это дает мне ошибку:
Ошибка в сканировании (файл, что, nmax, sep, dec, quote, skip, nlines, na.strings,: scan() ожидается "реальный", получил "4"
Я думаю, возможно, что в исходном сыром файле есть кавычки вокруг некоторых числовых значений, но я не уверен.
Ответы
Ответ 1
Без просмотра ваших данных у вас есть одна из нескольких вещей: у вас нет всех вкладок, разделяющих данные; в отдельных наблюдениях встроены вкладки; или литнем других.
Как вы можете отсортировать это, установите options(stringsAsFactors=FALSE)
, затем используйте свою первую строку.
Проверьте str(data)
и попытайтесь выяснить, какие строки являются виновниками. Причина, по которой некоторые из числовых значений читаются как факторы, состоит в том, что в этом столбце есть что-то, что R интерпретирует как символ, и поэтому он приводит ко всем столбцам символ. Обычно требуется некоторое копирование, но проблема почти наверняка связана с вашим входным файлом.
Это общая проблема перебора данных, удачи!
Ответ 2
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