3

I am trying to use read.table() to import this TXT file into R (contains informations about meteorological stations provided by the WMO):

However, when I try to use

tmp <- read.table(file=...,sep=";",header=FALSE)

I get this error

eof within quoted string

warning and only 3514 of the 6702 lines appear in 'tmp'. From a quick look at the text file, I couldn't find any seemingly problematic characters.

As suggested in other threads, I also tried quote="". The EOF warning disappeared, but still only 3514 lines are imported.

Any advice on how I can get read.table() to work for this particular txt file?

A. Suliman
  • 12,923
  • 5
  • 24
  • 37
user3825755
  • 883
  • 2
  • 10
  • 29
  • 1
    ...just so you know, the issue is that some fields have unmatched double quotes. See line 2808. – joran Jul 10 '14 at 14:43

2 Answers2

8

It looks like your data actually has 11548 rows. This works:

read.table(url('http://weather.noaa.gov/data/nsd_bbsss.txt'), 
    sep=';', quote=NULL, comment='', header=FALSE)

edit: updated according @MrFlick's comment's below.

Matthew Plourde
  • 43,932
  • 7
  • 96
  • 113
0

The problem is LF. R will not recognize "^M", to load the file, you only need to specify the encoding like this:

read.table("nsd_bbsss.txt",sep=";",header=F,encoding="latin1",quote="",comment='',colClasses=rep("character",14)) -> data 

But Line 8638 has more than 14 columns, which is different from other lines and may lead an error message.

yfyang
  • 220
  • 2
  • 7