0

使用官员函数 ph_with_vg_at 时出现以下错误:

Error in dml_pptx(file = dml_file, width = width, height = height, offx = left, : argument "height" is missing, with no default

我认为问题在于我使用的“funWorkaround”包装器代替了 ph_with_vg_at。此功能可确保在写入 PPT 时正确编码某些字符(在此处偷了此功能)。当我使用 ph_with_vg_at 而不是 funWorkaround 时,我没有收到错误消息。

直到今天,当我更新了所有软件包时,这一切都运行良好。所以不确定这是官员/房车问题还是管道问题。或者以上都不是!

我正在寻找解决此错误或在从 R 写入 PPT 时找到另一种保留字符编码的方法。谢谢!

funWorkaround <- function(x, code, left, top, height, width, ...) {
  # Re-Store old encoding on end
  sOldEnc <- getOption("encoding")
  on.exit(options(encoding=sOldEnc))

  # Modify encoding
  options(encoding="UTF-8")

  # Create plot
  return(ph_with_vg_at(x, code, left, top, height, width, ...))
}

ppt_test <- ppt_test %>% 
  add_slide(layout = "Two Content", master = "Office Theme") %>% 
  ph_with_text(type = "title", str = "Satisfaction with Issue Details") %>% 
  funWorkaround(code = print(issuedetails.plot), 
                left = 0.46, 
                top = 2, 
                width = 11.8, 
                height = 4.71)
4

2 回答 2

0

您使用的是更高版本的 rvg 软件包吗?有一个新参数 ggobj,默认情况下它是第三个参数。如果您只是在解决方法中命名参数,它应该可以工作:

funWorkaround <- function(x, code, left, top, height, width, ...) {
  # Re-Store old encoding on end
  sOldEnc <- getOption("encoding")
  on.exit(options(encoding=sOldEnc))

  # Modify encoding
  options(encoding="UTF-8")

  # Create plot
  return(ph_with_vg_at(x, code=code, left=left, top=top, height=height, width=width, ...))
}
于 2019-02-27T15:33:08.597 回答
0

通过返回使用直接 ph_with_vg_at 函数而不是 funWorkaround 包装器解决了这个问题。为了确保获得正确的连接编码,我将以下内容放在我的牌组创建脚本的开头:

oldEnc = getOption("encoding") 选项(encoding = "UTF-8")

然后我把它放在脚本的末尾:

选项(编码 = oldEnc)

这将在构建 PPT 时将连接设置移动到 UTF-8,但随后确保在构建 PPT 文件后它返回到原始 native.enc。否则,如果设置保留为 UTF-8,您可能会遇到无法预料的问题(例如读取数据)。

于 2018-01-09T22:59:46.940 回答