[R] Pasting data into scan()

Prof Brian Ripley ripley at stats.ox.ac.uk
Tue May 2 10:43:21 CEST 2006


The file attachment I received had LF not CRLF line endings, but I think I 
have guessed what is happening here.

It works from Emacs if you paste into Rterm by not if you paste into Rgui, 
as the latter ignores tabs on input.  The way to do it in Rgui is

scan("clipboard")

More generally, pasting control characters into any application is subject 
to their being interpreted in ways you do not expect.

On Tue, 2 May 2006, Murray Jorgensen wrote:

> I think that Mozilla Thunderbird replaces tabs with blanks routinely.
> I was actually pasting from Crimson Editor but results are identical with 
> Notepad and MS Word. However there is no problem when pasting from WinEdt:
>
>> strength <- scan()
> 1: 0.023   0.032   0.054   0.069   0.081   0.094
> 7: 0.105   0.127   0.148   0.169   0.188   0.216
> 13: 0.255   0.277   0.311   0.361   0.376   0.395
> 19: 0.432   0.463   0.481   0.519   0.529   0.567
> 25: 0.642   0.674   0.752   0.823   0.887   0.926
> 31:
> Read 30 items
>
> and scanning the file directly works with or without ' sep="\t" ':
>> strength <- scan("C:\\Files\\Teaching\\STAT321\\tensile.dat")
> Read 30 items
>> strength <- scan("C:\\Files\\Teaching\\STAT321\\tensile.dat",sep="\t")
> Read 30 items
>
> I will send the file to BR (but not to the list!)
>
> Murray Jorgensen
>
> Prof Brian Ripley wrote:
>> No tabs are being echoed, so your cut/paste is removing the tabs.
>> What are you pasting from? (Not an R problem, of course.)
>> 
>> On Tue, 2 May 2006, Murray Jorgensen wrote:
>> 
>>> The file TENSILE.DAT from the Hand et al "Handbook of Small Data Sets"
>>> looks like this:
>>> 
>>> 0.023    0.032    0.054    0.069    0.081    0.094
>>> 0.105    0.127    0.148    0.169    0.188    0.216
>>> 0.255    0.277    0.311    0.361    0.376    0.395
>>> 0.432    0.463    0.481    0.519    0.529    0.567
>>> 0.642    0.674    0.752    0.823    0.887    0.926
>>> 
>>> except that my mail client has replaced the tab separators by blanks. If
>>> I paste this data into R 2.2.1 what I get is
>>> 
>>> > strength <- scan()
>>> 1: 0.0230.0320.0540.0690.0810.094
>>> 1: 0.1050.1270.1480.1690.1880.216
>>> Error in scan() : scan() expected 'a real', got
>>> '0.0230.0320.0540.0690.0810.094'
>>> > 0.2550.2770.3110.3610.3760.395
>>> Error: syntax error in "0.2550.2770"
>>> > 0.4320.4630.4810.5190.5290.567
>>> Error: syntax error in "0.4320.4630"
>>> > 0.6420.6740.7520.8230.8870.926
>>> Error: syntax error in "0.6420.6740"
>>> 
>>> Aha! I thought, what I need is     scan(sep = "\t")
>>> but this generates the same error messages.
>>> 
>>> Help!   Murray
>>> 
>>> 
>> 
>
>

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595




More information about the R-help mailing list