#r #swirl
Вопрос:
Я не смог заставить следующий код работать, у кого-нибудь есть какие-либо идеи, почему он не передает содержимое курса swirl, проводимого студентами, в форму Google по URL-адресу.
Репозиторий Google_Forms_Course Шона Кросса-это место, где я разветвил исходный код и настроил его точно так, как описано в read.me. Похоже, это проблема взаимодействия с Google Формами, и его исходный код был написан некоторое время назад. Какая часть этого кода может не взаимодействовать с новым API, возможно … Я действительно не знаю, как найти свое собственное решение … но я бы очень хотел это исправить.
# Get the swirl state getState lt;- function(){ # Whenever swirl is running, its callback is at the top of its call stack. # Swirl's state, named e, is stored in the environment of the callback. environment(sys.function(1))$e } # Retrieve the log from swirl's state getLog lt;- function(){ getState()$log } submit_log lt;- function(){ # Please edit the link below pre_fill_link lt;- "Enter Google Form URL here" # Do not edit the code below if(!grepl("=$", pre_fill_link)){ pre_fill_link lt;- paste0(pre_fill_link, "=") } p lt;- function(x, p, f, l = length(x)){if(l lt; p){x lt;- c(x, rep(f, p - l))};x} temp lt;- tempfile() log_ lt;- getLog() nrow_ lt;- max(unlist(lapply(log_, length))) log_tbl lt;- data.frame(user = rep(log_$user, nrow_), course_name = rep(log_$course_name, nrow_), lesson_name = rep(log_$lesson_name, nrow_), question_number = p(log_$question_number, nrow_, NA), correct = p(log_$correct, nrow_, NA), attempt = p(log_$attempt, nrow_, NA), skipped = p(log_$skipped, nrow_, NA), datetime = p(log_$datetime, nrow_, NA), stringsAsFactors = FALSE) write.csv(log_tbl, file = temp, row.names = FALSE) encoded_log lt;- base64encode(temp) browseURL(paste0(pre_fill_link, encoded_log)) }