[R] Reading word by word in a dataset

John cyracules at yahoo.co.uk
Thu Nov 4 14:02:03 CET 2004


Dear Andy,
Why does my 'read.table()' NOT work in this example?
I have the error, "subscript out of bounds", as you
see below. My R version is 1.9.0.

> system("more mtx.ex.1")
i1-apple 10$ New_York
i2-banana 5$ London
i3-strawberry 7$ Japan
>
> read.table("mtx.ex.1",
colClasses=c("character","NULL","NULL"), fill=T)
Error in data[[i]] : subscript out of bounds
>
> read.table("mtx.ex.1", colClasses=c("character",
NULL, NULL), fill=T)
             V1  V2       V3
1      i1-apple 10$ New_York
2     i2-banana  5$   London
3 i3-strawberry  7$    Japan
>
> read.table("mtx.ex.1", colClasses=c("character",
NULL, NULL), fill=T)[,1]
[1] "i1-apple"      "i2-banana"     "i3-strawberry"
>

Cheers,

John


 --- "Liaw, Andy" <andy_liaw at merck.com> wrote: 
> Don't give up on read.table() just yet:
> 
> > read.table("clipboard", colClasses=c("character",
> "NULL", "NULL"),
> fill=TRUE)
>              V1
> 1      i1-apple
> 2     i2-banana
> 3 i3-strawberry
> 
> Andy
> 
> > From: Spencer Graves
> > 
> >       Uwe and Andy's solutions are great for many 
> > applications but won't 
> > work if not all rows have the same numbers of
> fields.  Consider for 
> > example the following modification of Lee's
> example: 
> > 
> > i1-apple        10$   New_York
> > i2-banana
> > i3-strawberry   7$    Japan
> > 
> >       If I copy this to "clipboard" and run Andy's
> code, I get the 
> > following: 
> > 
> >  > read.table("clipboard",
> colClasses=c("character", "NULL", "NULL"))
> > Error in scan(file = file, what = what, sep = sep,
> quote = 
> > quote, dec = 
> > dec,  :
> >     line 2 did not have 3 elements
> > 
> >       We can get around this using "scan", then
> splitting 
> > things apart 
> > similar to the way Uwe described: 
> > 
> >  > dat <-
> > + scan("clipboard", character(0), sep="\n")
> > Read 3 items
> >  > dash <- regexpr("-", dat)
> >  > dat2 <- substring(dat, pmax(0, dash)+1)
> >  >
> >  > blank <- regexpr(" ", dat2)
> >  > if(any(blank<0))
> > +   blank[blank<0] <- nchar(dat2[blank<0])
> >  > substring(dat2, 1, blank)
> > [1] "apple "      "banana"      "strawberry "
> > 
> >       hope this helps.  spencer graves
> >     
> > Uwe Ligges wrote:
> > 
> > > Liaw, Andy wrote:
> > >
> > >> Using R-2.0.0 on WinXPPro, cut-and-pasting the
> data you have:
> > >>
> > >>
> > >>> read.table("clipboard",
> colClasses=c("character", "NULL", "NULL"))
> > >>
> > >>
> > >>              V1
> > >> 1      i1-apple
> > >> 2     i2-banana
> > >> 3 i3-strawberry
> > >
> > >
> > >
> > > ... and if only the words after "-" are of
> interest, the 
> > statement can 
> > > be followed by
> > >
> > >  sapply(strsplit(...., "-"), "[", 2)
> > >
> > >
> > > Uwe Ligges
> > >
> > >
> > >
> > >> HTH,
> > >> Andy
> > >>
> > >>
> > >>> From: j lee
> > >>>
> > >>> Hello All,
> > >>>
> > >>> I'd like to read first words in lines into a
> new file.
> > >>> If I have a data file the following, how can I
> get the
> > >>> first words: apple, banana, strawberry?
> > >>>
> > >>> i1-apple        10$   New_York
> > >>> i2-banana       5$    London
> > >>> i3-strawberry   7$    Japan
> > >>>
> > >>> Is there any similar question already posted
> to the
> > >>> list? I am a bit new to R, having a few months
> of
> > >>> experience now.
> > >>>
> > >>> Cheers,
> > >>>
> > >>> John
> > >>>
> > >>> ______________________________________________
> > >>> R-help at stat.math.ethz.ch mailing list
> > >>> https://stat.ethz.ch/mailman/listinfo/r-help
> > >>> PLEASE do read the posting guide! 
> > >>> http://www.R-project.org/posting-guide.html
> > >>>
> > >>>
> > >>
> > >>
> > >> ______________________________________________
> > >> R-help at stat.math.ethz.ch mailing list
> > >> https://stat.ethz.ch/mailman/listinfo/r-help
> > >> PLEASE do read the posting guide! 
> > >> http://www.R-project.org/posting-guide.html
> > >
> > >
> > > ______________________________________________
> > > R-help at stat.math.ethz.ch mailing list
> > > https://stat.ethz.ch/mailman/listinfo/r-help
> > > PLEASE do read the posting guide! 
> > > http://www.R-project.org/posting-guide.html
> > 
> > 
> > -- 
> > Spencer Graves, PhD, Senior Development Engineer
> > O:  (408)938-4420;  mobile:  (408)655-4567
> > 
> > ______________________________________________
> > R-help at stat.math.ethz.ch mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide! 
> > http://www.R-project.org/posting-guide.html
> > 
> > 
> 
> 
>
------------------------------------------------------------------------------
> Notice:  This e-mail message, together with any
> attachments, contains information of Merck & Co.,
> Inc. (One Merck Drive, Whitehouse Station, New
> Jersey, USA 08889), and/or its affiliates (which may
> be known outside the United States as Merck Frosst,
> Merck Sharp & Dohme or MSD and in Japan, as Banyu)
> that may be confidential, proprietary copyrighted
> and/or legally privileged. It is intended solely for
> the use of the individual or entity named on this
> message.  If you are not the intended recipient, and
> have received this message in error, please notify
> us immediately by reply e-mail and then delete it
> from your system.
>
------------------------------------------------------------------------------
>




More information about the R-help mailing list