有没有可能把dplyr管道放到一个函数中来合并R中的重复代码?

y0u0uwnf  于 2022-12-06  发布在  其他
关注(0)|答案(1)|浏览(109)

我正在用officer在R中制作一个powerpoint。我所有的幻灯片都有相同的布局,所以我试图写一个函数来合并代码。

suppressPackageStartupMessages({
  library(officer)
  library(tidyverse)
})

这是一个我所拥有的例子:
第一次
我尝试合并下面的代码,但收到此错误:Error in new_slide(., image = srcfile) : unused argument (.) .
尝试的解决方案:

new_slide <- function(image) 
{
  add_slide() %>%
    ph_with(external_img(image, width = 2.78, height = 2.12),
            location = ph_location_type(type = "body"), 
            use_loc_size = FALSE )
}

test_2 <- read_pptx() %>%
  new_slide(image = srcfile) %>%
  new_slide(image = srcfile)

print(test_1, target = "test_2.pptx")
kq4fsx7k

kq4fsx7k1#

%>%运算符通过第一个参数沿着值传递给函数。要继续链,您需要捕获第一个值。例如

new_slide <- function(x, image) {
    x %>%
    add_slide() %>%
    ph_with(external_img(image, width = 2.78, height = 2.12),
            location = ph_location_type(type = "body"), 
            use_loc_size = FALSE )
}

相关问题