Дублирование слайдов во время генерации Power Point в R - PullRequest
0 голосов
/ 20 февраля 2020

Я столкнулся со странной проблемой, когда пытался сгенерировать слайд с условной точкой питания с использованием R. Если я использую следующий код, то созданная колода слайдов будет иметь все слайды, сгенерированные из предыдущих элементов в списке. зацикливание (так что условная часть l oop не работает). Таким образом, если список состоит из 3 элементов, а я генерирую 2 слайда на элемент, во 2-й колоде будет 4 слайда и 3 - 6 слайдов.

path_out <- "C: [insert drive emplacement]\\"

ppt_template <- read_pptx()


fn_ppt_template <- function(data){

template <- ppt_template %>%
      # Make slide: 
  add_slide(layout="Title and Content", master="Office Theme") %>%
  ph_with_text(type = "title", str = "Analyis") %>%
  ph_with_text(type = "body", str = paste(unique(data$country),"[insert date],", sep = " ")) %>%
    # Print to save powerpoint
 print(target = paste0(path_out,unique(data$iso3),"_analyses.pptx"))

}

 iso3 <- c('ABW','AFG')
 country <- c("Aruba", "Afghanistan")
 template_list <- data.frame(iso3, country, stringsAsFactors=FALSE)
 template_list <- template_list %>%  split(list(template_list$iso3),drop = T)
 template_list %>%  map(~fn_ppt_template(data = .x))

Однако, если я запускаю следующий код, я не сталкиваюсь с этой проблемой и не могу точно определить, почему именно.

path_out <- "C:[insert drive emplacement]\\"

fn_ppt_template <- function(data){

template <- read_pptx() %>%
      # Make slide: 
  add_slide(layout="Title and Content", master="Office Theme") %>%
  ph_with_text(type = "title", str = "Analyis") %>%
  ph_with_text(type = "body", str = paste(unique(data$country),"[insert date],", sep = " ")) %>%
    # Print to save powerpoint
 print(target = paste0(path_out,unique(data$iso3),"_analyses.pptx"))

}

 iso3 <- c('ABW','AFG')
 country <- c("Aruba", "Afghanistan")
 template_list <- data.frame(iso3, country, stringsAsFactors=FALSE)
 template_list <- template_list %>%  split(list(template_list$iso3),drop = T)
 template_list %>%  map(~fn_ppt_template(data = .x))
...