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

Michael Friendly friendly at yorku.ca
Wed Dec 10 20:17:06 CET 2008


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.
 >

-- 
Michael Friendly     Email: friendly AT yorku DOT ca 
Professor, Psychology Dept.
York University      Voice: 416 736-5115 x66249 Fax: 416 736-5814
4700 Keele Street    http://www.math.yorku.ca/SCS/friendly.html
Toronto, ONT  M3J 1P3 CANADA



More information about the R-help mailing list