RGoogleDocs - uploadDoc не заменяет документ с тем же именем - PullRequest
2 голосов
/ 04 марта 2011

Я использую пакет RGoogleDocs для загрузки строки текста в документ.

Следующий код является минимальным рабочим примером.

library(RGoogleDocs)
gpasswd = "mypassword"
auth = getGoogleAuth("example@gmail.com", gpasswd)
con = getGoogleDocsConnection(auth)
uploadDoc("test1", con, name = "d")

Проблема: если я запускаю этот код дважды , появляются два файла с именем "d". Другими словами, файл не заменяется, даже если в руководстве по функциям ? UploadDoc ожидаемое поведение читается как

uploadDoc(content, con, name, type = as.character(findType(content)), 
       binary = FALSE, asText = FALSE, folder = NULL, ...)

-

name     the name of the new document to be created (or the document to be replaced).

Ответы [ 2 ]

3 голосов
/ 05 марта 2011

(Фаррел Бучинский обратил на это мое внимание. Часто бывает лучше связаться с автором / сопровождающим пакета, если есть проблема, поскольку мы не обязательно следуем как R-help, так и SO.)

Noahправильно сказать просто deleteDoc () и uploadDoc ().

Мы можем сделать это и в uploadDoc ().Я только что добавил параметр замены в uploadDoc () (по умолчанию TRUE), и это (когда я решаю, возможно, связанную ошибку) a) переместить текущий документ, если он существует, во временное имя b) загрузить новый документк целевому имени, c) удалите временный документ, если загрузка прошла успешно, или, если нет, переместите временный документ обратно к исходному имени.

Что-то не так внутри при тестировании, но это должно быть в следующем выпуске.

1 голос
/ 04 марта 2011

Я думаю, что руководство по функциям здесь немного вводит в заблуждение. Функция uploadDoc просто создает новый документ, и Google не препятствует тому, чтобы несколько документов назывались одинаково.

В RGoogleDocs есть заглушка для updateDoc(), но она уже давно на горизонте (последнее обновление пакета было 10/2009). Я играл несколько минут, но для того, чтобы все заработало, понадобилось немного покопаться.

Не удовлетворительный ответ, но вы всегда можете просто набрать deleteDoc() перед повторной загрузкой с тем же именем.

...