[R] Reading word by word in a dataset

Spencer Graves spencer.graves at pdf.com
Mon Nov 1 21:59:16 CET 2004


      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




More information about the R-help mailing list