将图像和数据从R导出到Excel电子表格

use*_*440 4 excel r

打印图像并将其保存在磁盘上非常简单:

fit <- lm(some ~ model)

png(filename="your/file/location/name.png")
plot(fit)
dev.off()
Run Code Online (Sandbox Code Playgroud)

将一些数据写入excel电子表格

write.csv(rnorm(10),"some file",sep=",")
Run Code Online (Sandbox Code Playgroud)

我的问题是如何将上述内容重定向到电子表格.另一个词,输出一个图形与一些图像/情节配对到excel工作簿?

谢谢,

rrs*_*rrs 8

我会用这个xlsx包.查看addPicture功能和addDataFrame功能.我发现这个包很容易使用.


K B*_*Bro 7

您可以对insertImage函数和使用openxlsx包做同样的事情。

我已经复制了上面的示例,但使用了 openxlsx 包:

# Setup
x <- c('tidyverse', 'openxlsx')
sapply(X=x, FUN = require, character.only = TRUE)

# Create graph---------
dcs <- ggplot(mtcars) +
  geom_point(aes(cyl, disp))

# Export Pic -----------
pic_path <- "C:/home/dcs.jpeg"
png(filename = pic_path)
plot(dcs)
dev.off()

# Add to a new work book -------------
wb <- openxlsx::createWorkbook()
addWorksheet(wb, "Plots")
insertImage(wb, "Plots", pic_path)
openxlsx::saveWorkbook(wb,
                       "~/example.xlsx")

# Kill pic
unlink(pic_path)
Run Code Online (Sandbox Code Playgroud)


Use*_*716 5

只是添加一个关于 xlsx 包的示例,据我所知,它要求您首先保存图片,然后将其导入 xlsx 文件,请参阅下面的可重现的导出到现有书籍的示例:

# Setup
x <- c('tidyverse', 'rJava', 'xlsxjars', 'xlsx')
sapply(X=x, FUN = require, character.only = TRUE)

# Create graph---------
dcs <- ggplot(mtcars) +
  geom_point(aes(cyl, disp))

# Export Pic -----------
pic_path <- "C:/home/dcs.jpeg"
png(filename = pic_path)
plot(dcs)
dev.off()

# Add to existing book -------------
xl_path <- "C:/home/a.xlsx"

wb <- loadWorkbook(xl_path)

ws <- getSheets(wb)["Summary"][[1]]

addPicture(file = pic_path, sheet = ws)

saveWorkbook(wb, xl_path)

# Kill pic
unlink(pic_path)

#Then write some data
write.xlsx(as.data.frame(output), xl_path, sheetName = 'data'))
Run Code Online (Sandbox Code Playgroud)