читать.csv не удается прочитать файл CSV из google docs
Я хочу использовать read.csv для чтения электронной таблицы Google doc.
Я пытаюсь использовать следующий код:
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 ответа:
Я столкнулся с той же проблемой и в конечном итоге нашел решение в форуме потока. Используя мой собственный открытый 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))
Это может быть как-то связано с тем, что 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'
Проверьте решение на http://blog.forret.com/2011/07/google-docs-infamous-moved-temporarily-error-fixed/
Итак, каково же решение: просто добавьте "&ndplr=1 " к вашему URL, и вы получите пропустите перенаправление аутентификации. Я не уверен, что NDPLR имя параметра расшифровывается, давайте просто назовем его: "никогда не публиковаться Перенаправление Ссылок".