2015-02-14 5 views
0

Немного тайны. У меня есть .tsv-файл, содержащий 58936 строк. Я загрузил файл в R, используя следующую команду:R read.csv не загружал все строки .tsv-файла

dat <- read.csv("weekly_devdata.tsv", header=FALSE, stringsAsFactors=TRUE, sep="\t") 

но nrow (Даты) показывает только это:

> nrow(dat) 
[1] 28485 

Таким образом, я использовал SED -n команды, чтобы написать строки вокруг, где она остановилась (до, включая и после этой строки) в новый файл и смог загрузить этот файл в R, поэтому я не думаю, что в файле было повреждение.

Это проблема с окружающей средой?

Вот мой sessionInfo()

> sessionInfo() 
R version 3.1.2 (2014-10-31) 
Platform: x86_64-apple-darwin13.4.0 (64-bit) 

locale: 
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 

attached base packages: 
[1] tcltk  stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] sqldf_0.4-10 RSQLite_1.0.0 DBI_0.3.1  gsubfn_0.6-6 proto_0.3-10 scales_0.2.4 plotrix_3.5-11 
[8] reshape2_1.4.1 dplyr_0.4.1 

loaded via a namespace (and not attached): 
[1] assertthat_0.1 chron_2.3-45  colorspace_1.2-4 lazyeval_0.1.10 magrittr_1.5  munsell_0.4.2 
[7] parallel_3.1.2 plyr_1.8.1  Rcpp_0.11.4  rpart_4.1-8  stringr_0.6.2 tools_3.1.2 

ли я запустить из памяти? Неужели это не закончило загрузку?

ответ

2

У меня была аналогичная проблема в последнее время, и оказалось, что у меня были две разные проблемы.

1 - Не все строки имели правильное количество вкладок. Я закончил тем, что подсчитал их, используя awk.

2 - В некоторых точках файла у меня были котировки, которые не были закрыты. Это заставляло его пропускать все строки, пока не найдет заключительную цитату.

Я выкопаю код awk, который я использовал для расследования и устранения этих проблем и опубликования его.

Поскольку я использую Windows, я использовал awk, который пришел с git bash.

Это подсчитало количество вкладок в строке и распечатало те строки, которые не имели нужного номера.

awk -F "\t" 'NF!=6 { print NF-1 ":" $0 } ' Catalog01.csv 

Я использовал что-то похожее на счетные кавычки, и я использовал tr, чтобы исправить его много.

+0

Hi Майк: Я собираюсь попробовать это сейчас. Но так как я смог прочитать строки вокруг и включая эту строку, я не уверен, что это так. Спасибо – Jazzmine

+0

Я уверен, что недостающие котировки являются частью проблемы.Обычно это так, когда столько строк отсутствуют. Но, может быть, и не ... –

+0

Хорошо, я сделал предположение, что он считывает первое число x строк, но, возможно, некоторые просто не загружаются, и он дошел до конца файла. Но отклонил некоторые строки. Есть ли способ сказать это? – Jazzmine

1

Довольно уверен, что это не проблема памяти. Если проблема не имеет себе равных кавычки, то попробуйте следующее:

t <-read.csv("weekly_devdata.tsv", header=FALSE, stringsAsFactors=TRUE,sep="\t", 
      quote="") 

Существует также очень полезная функция count.fields, что я использую внутри table, чтобы получить вид на высоком уровне последствий различных параметров настройки. Посмотрите на результаты:

table(count.fields("weekly_devdata.tsv", sep="\t")) 

И сравните:

table(count.fields("weekly_devdata.tsv", sep="\t", quote="")) 

Это когда-то надо читать в с readLines, а затем удалить одну или несколько строк возложении результат clean, а затем отправить очищенный до read.table(text=clean, sep="\t", quote="")

0

В некоторых статьях могут быть некоторые незаконные символы ... Проверьте, сколько выгружаете и где происходит проблема. Погрузитесь глубже в эту строку необработанных данных. Шрифт Webdings такого рода!

+0

Добро пожаловать в SO. Пожалуйста, объясните, как OP может заниматься некоторыми вашими предложениями. Например, было бы неплохо объяснить, как проверить, сколько загрузок происходит. –