read.csv не может прочитать файл CSV из Google Docs - PullRequest
4 голосов
/ 29 апреля 2011

Я хочу использовать read.csv для чтения электронной таблицы документов Google.

Я пытаюсь использовать следующий код:

data_url <- "http://spreadsheets0.google.com/spreadsheet/pub?hl=en&hl=en&key=0AgMhDTVek_sDdGI2YzY2R1ZESDlmZS1VYUxvblQ0REE&single=true&gid=0&output=csv"
read.csv(data_url)

, что приводит к следующей ошибке:

Error in file(file, "rt") : cannot open the connection

Я на Windows 7. И код был опробован на R 2.12 и 2.13

Я помню, пытался это несколько месяцев назад, и он работал нормально.Любое предложение, что может быть причиной или как ее решить?

Спасибо.

Ответы [ 3 ]

9 голосов
/ 29 апреля 2011

Возможно, это связано с тем, что Google сообщает о 302 временно перемещенных ответах.

> download.file(data_url, "~/foo.csv", method = "wget")
--2011-04-29 18:01:01--  http://spreadsheets0.google.com/spreadsheet/pub?hl=en&hl=en&key=0AgMhDTVek_sDdGI2YzY2R1ZESDlmZS1VYUxvblQ0REE&single=true&gid=0&output=csv
Resolving spreadsheets0.google.com... 74.125.230.132, 74.125.230.128, 74.125.230.130, ...
Connecting to spreadsheets0.google.com|74.125.230.132|:80... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: https://spreadsheets0.google.com/spreadsheet/pub?hl=en&hl=en&key=0AgMhDTVek_sDdGI2YzY2R1ZESDlmZS1VYUxvblQ0REE&single=true&gid=0&output=csv [following]
--2011-04-29 18:01:01--  https://spreadsheets0.google.com/spreadsheet/pub?hl=en&hl=en&key=0AgMhDTVek_sDdGI2YzY2R1ZESDlmZS1VYUxvblQ0REE&single=true&gid=0&output=csv
Connecting to spreadsheets0.google.com|74.125.230.132|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/plain]
Saving to: `/home/gavin/foo.csv'

    [ <=>                                                                                                                                                   ] 41          --.-K/s   in 0s      

2011-04-29 18:01:02 (1.29 MB/s) - `/home/gavin/foo.csv' saved [41]

> read.csv("~/foo.csv")
  column1 column2
1       a       1
2       b       2
3      ds       3
4       d       4
5       f       5
6      ga       5

Я не уверен, что внутренний код загрузки R способен реагировать на такие перенаправления:

> download.file(data_url, "~/foo.csv")
trying URL 'http://spreadsheets0.google.com/spreadsheet/pub?hl=en&hl=en&key=0AgMhDTVek_sDdGI2YzY2R1ZESDlmZS1VYUxvblQ0REE&single=true&gid=0&output=csv'
Error in download.file(data_url, "~/foo.csv") : 
  cannot open URL 'http://spreadsheets0.google.com/spreadsheet/pub?hl=en&hl=en&key=0AgMhDTVek_sDdGI2YzY2R1ZESDlmZS1VYUxvblQ0REE&single=true&gid=0&output=csv'
3 голосов
/ 23 июля 2011

Я столкнулся с той же проблемой и в конце концов нашел решение в ветке форума . Используя мой открытый файл CSV:

library(RCurl)
tt = getForm("https://spreadsheets.google.com/spreadsheet/pub", 
          hl ="en_US", key = "0Aonsf4v9iDjGdHRaWWRFbXdQN1ZvbGx0LWVCeVd0T1E", 
          output = "csv", 
         .opts = list(followlocation = TRUE, verbose = TRUE, ssl.verifypeer = FALSE)) 

holidays <- read.csv(textConnection(tt))
1 голос
/ 15 июля 2011

Проверьте решение на http://blog.forret.com/2011/07/google-docs-infamous-moved-temporarily-error-fixed/

Так в чем же решение: просто добавьте « & ndplr = 1 » к своему URL, и вы пропустите перенаправление аутентификации.Я не уверен, что означает имя параметра NDPLR, давайте просто назовем его: «Никогда не делайте перенаправление опубликованных ссылок».

...