如何解决将绘图添加到文档在函数
不确定问题的原因是什么...
作品:
library(officer)
data <- data.frame(test=c(1:10),test2=rep(c("a","b"),5))
doc <- read_docx()
# Inlined function
tabledata <- data$test2
d <- table(tabledata)
doc <-body_add_plot(doc,value = plot_instr(code = {barplot(d)}))
print(doc,target="test.docx")
不起作用:
library(officer)
data <- data.frame(test=c(1:10),5))
doc <- read_docx()
createBarPlot <- function(){
tabledata <- data$test2
d <- table(tabledata)
doc <-body_add_plot(doc,value = plot_instr(code = {barplot(d)}))
}
createBarPlot()
print(doc,target="test.docx")
错误信息:
Error in barplot(d) : object 'd' not found
Calls: createBarPlot ... tryCatch -> tryCatchList -> eval -> eval -> barplot
Backtrace:
█
1. └─global::createBarPlot()
2. └─officer::body_add_plot(...)
3. ├─base::tryCatch(...)
4. │ └─base:::tryCatchList(expr,classes,parentenv,handlers)
5. ├─base::eval(value$code)
6. │ └─base::eval(value$code)
7. └─graphics::barplot(d)
Execution halted
编辑:所以在@Lmc 在评论中提出建议后,我更改了将 d
分配给 d <<- table(tabledata)
的行 - 并且它起作用了!这对我来说确实有意义,因为 doc(这是一个全局)被修改但无权访问 d
。但如果有人可以/想要更详细地解释,我很乐意学习!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。