R Officer - могу ли я l oop data или есть ли способ обойти данные? Не могу заставить его работать - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть набор данных из 461 строки, каждая строка имеет 14 столбцов. У каждой из этих строк есть экзаменационный вопрос с тегами и несколькими вариантами ответов. Я пытаюсь создать Word Do c, который имеет один из этих вопросов на каждой странице. Итак, 461 страница, по одной на каждый вопрос. Я могу легко заставить это работать для верхней строки, но когда я вставляю для кода l oop в код, это не работает, и я получаю следующую ошибку: Ошибка в function_list [k]: объект 'i' не найден

Итак, ниже приведен мой код со вставленным символом for l oop, как сказано выше, перед возвратом по одной строке все в порядке, поэтому код работает так, как я намереваюсь работать.

attach(DATA)

my_doc <- read_docx()

my_doc <- my_doc %>%
  for(i in 1:nrow(DATA))
  {
  body_add_par(paste("QBANK.ID: ",QBANK.ID[i], sep = ""), style = "Normal") %>%
  body_add_par(paste("FRED'S CODE: ",FREDS.CODE[i], sep = ""), style = "Normal") %>%
  body_add_par(paste("DOMAIN - ",DOMAIN[i], sep = ""), style = "Normal") %>%
  body_add_par(paste("SUBJECT AREA - ",SUBJECT.AREA[i], sep = ""), style = "Normal") %>%
  body_add_par(paste("LEARNING POINT - ",LEARNING.POINT[i], sep = ""), style = "Normal") %>%
  body_add_par(paste("CORRECT ANSWER - ",CORRECT.ANSWER[i], sep = ""), style = "Normal") %>%
  body_add_par("", style = "Normal") %>%
  body_add_par("", style = "Normal") %>%
  body_add_par(paste(VIGNETTE[i], sep = ""), style = "Normal") %>%
  body_add_par("", style = "Normal") %>%
  body_add_par("", style = "Normal") %>%
  body_add_par(paste(LEAD.IN[i], sep = ""), style = "Normal") %>%
  body_add_par("", style = "Normal") %>%
  body_add_par("", style = "Normal") %>%
  body_add_par(paste(A.ANSWER[i], sep = ""), style = "Normal") %>%
  body_add_par("", style = "Normal") %>%
  body_add_par(paste(B.ANSWER[i], sep = ""), style = "Normal") %>%
  body_add_par("", style = "Normal") %>%
  body_add_par(paste(C.ANSWER[i], sep = ""), style = "Normal") %>%
  body_add_par("", style = "Normal") %>%
  body_add_par(paste(D.ANSWER[i], sep = ""), style = "Normal") %>%
  body_add_par("", style = "Normal") %>%
  body_add_par(paste(E.ANSWER[i], sep = ""), style = "Normal") %>%
  body_add_par("", style = "Normal") %>%
  body_add_par(paste(F.ANSWER[i], sep = ""), style = "Normal") %>%
  body_add_par("", style = "Normal") %>%
  body_add_par("", style = "Normal") %>%
  body_add_par(paste("CORRECT ANSWER - ",CORRECT.ANSWER[i], sep = ""), style = "Normal") %>%
  body_add_break() %>%


  print(my_doc, target = paste("Bank.docx", sep = ""))
}

Могу ли я заставить это работать? Однако, сделав несколько поисков, похоже, что Officer не поддерживает такой цикл. Если это так, есть ли способ обойти все 461 вопрос в 1 документе, каждый на отдельной странице?

Спасибо за любую помощь, которую вы можете оказать мне, это будет очень признательно. Надеюсь, я достаточно хорошо объяснил, пожалуйста, дайте мне знать, если я смогу предоставить больше информации.

Спасибо,

Роб

...