2015-10-27 13 views
10

Yeni R kullanıcılarının bir Google Formuna bilgi göndermesine nasıl izin verebilirim? (RSelenium en azından başsız göz atma için biraz kurulum gerektiriyor, bu yüzden en iyi IMO adayı değil ama en iyi seçim yapan bir şey eksik olabilirim).Yeni R kullanıcılarının bir Google Formuna bilgi göndermesine nasıl izin verebilirim?

Bazı yeni R kullanıcılarım var Etkileşimli olarak yanıt almak ve güvenli bir yere göndermek istiyorum. Bilginin tek yönlü gönderilmesine izin verdiği ve kullanıcının formdan oluşturulan e-tabloya erişmesine izin vermediği için bilgileri Google Formları'na aktarmayı seçtim. İşte

bir url of this form var:

url <- "https://docs.google.com/forms/d/1tz2RPftOLRCQrGSvgJTRELrd9sdIrSZ_kxfoFdHiqD4/viewform" 

Ben kullanıcı ile etkileşime R kullanıyorum nasıl burada bağlam kazandırmak için:

Sonra Google'a bu TRUE/ FALSE göndermek istediğiniz
question <- function(message, opts = c("Yes", "No")){ 
    message(message) 
    ans <- menu(opts) 
    if (ans == "2") FALSE else TRUE 
} 

question("Was this information helpful?") 

yukarıdaki formu. Yukarıdaki Google formuna, R'nin içinden, kullanıcının etkileşime gireceği ve kullanıcı tarafından zor bir kurulumu gerektirmeyecek şekilde kod yerleştirebileceğim şekilde nasıl yanıt gönderebilirim?

R Paketleri, görevi tamamlarsa eklenir.

+0

Evet veya olası bir karakter comment –

+0

'if (ans == "2") FALSE else TRUE' bir kod antipatternidir. Sadece değişkenleri başlatmak için mantıksal sabitleri kullanın ve * başka hiçbir şey için *. Burada yazmak istediğiniz şey basitçe ans! = '2''dir. –

+0

@KonradRudolph'un karakoldaki noktaya dikkat çekmek için kullanılan kod. –

cevap

10

Bir POST sorgusu gönderebilirsiniz. İşte httr paketini kullanarak bir örnek: Örneğin

:

library(httr) 
send_response<- 
    function(response){ 
    form_url <- "https://docs.google.com/forms/d/1tz2RPftOLRCQrGSvgJTRELrd9sdIrSZ_kxfoFdHiqD4/formResponse" 
    POST(form_url, 
     query = list(`entry.1651773982`=response) 
    ) 
    } 

O zaman arayabilirsiniz:

send_response(question("Was this information helpful?")) 
+0

'entry.1651773982' nedir? –

+0

Ah, "entry_" –

+0

@ TylerRinker gibi kaynakta olduğundan kaynakta. Girişin adı. İsimleri bulmak için tarayıcıyı kullanmalısınız. – agstudy

İlgili konular