[R] read.*: How to read from a URL?

Duncan Murdoch murdoch at stats.uwo.ca
Wed Dec 10 20:55:07 CET 2008


If you use 
url("http://euclid.psych.yorku.ca/SCS/Gallery/Private/langrens.csv") 
then most functions will work, because that creates a connection to read 
the URL.  Most functions that can read files do it through connections.

Duncan Murdoch

On 12/10/2008 2:17 PM, Michael Friendly wrote:
> The question is how to use a URL in place of a file= argument for 
> read.*.functions that do
> not support this internally.
> 
> e.g., utils::read.table() and her family all support a file= argument 
> that can take a URL
> equally well as a local file.  So, if I have a file on the web, I can 
> equally well do
> 
>  > langren <- read.csv("langrens.csv", header=TRUE)
>  > langren <- 
> read.csv("http://euclid.psych.yorku.ca/SCS/Gallery/Private/langrens.csv", 
> header=TRUE)
> 
> where the latter is more convenient for posts to this list or 
> distributed examples. 
> 
> rimage::read.jpeg() doesn't support URLs, and the only way I've found is 
> to download the
>  image file from a URL to a temp file, in several steps.
> This is probably a more general problem than just read.jpeg,
> so maybe there is a general idiom for this case, or better-- other 
> read.* functions could
> be encouraged to support URLs.
> 
>  > library(rimage)
>  > # local file: OK
>  > gimage <- 
> read.jpeg("C:/Documents/milestone/images/vanLangren/google-toledo-rome3.jpg")
>  >
>  > gimageloc <- 
> "http://euclid.psych.yorku.ca/SCS/Gallery/images/Private/Langren/google-toledo-rome3.jpg"
>  > dest <- paste(tempfile(),'.jpg', sep='')
>  > download.file(gimageloc, dest, mode="wb")
> trying URL 
> 'http://euclid.psych.yorku.ca/SCS/Gallery/images/Private/Langren/google-toledo-rome3.jpg'
> Content type 'image/jpeg' length 35349 bytes (34 Kb)
> opened URL
> downloaded 34 Kb
> 
>  > dest
> [1] "C:\\DOCUME~1\\default\\LOCALS~1\\Temp\\Rtmp9nNTdV\\file5f906952.jpg"
>  > #  Is there something simpler??
>  > gimage <- read.jpeg(dest)
> 
>  > #  I thought file() might work, but evidently not.
>  > gimage <- read.jpeg(file(gimageloc))
> Error in read.jpeg(file(gimageloc)) : Can't open file.
>  >
>



More information about the R-help mailing list