自动将直方图写入r中的外部文件夹

自动将直方图写入r中的外部文件夹,r,R,我有大量的数据帧和大量的变量,我需要为每个变量生成直方图(它显式地命名所使用的变量)。我喜欢在RStudio界面(不是弹出窗口)中有这些图像,我还需要将这些图像保存为JPEG格式的文件夹 我有一个循环,我用它来生成所有变量的直方图,但它并没有为每个元素标记每个直方图,它还将直方图导出为弹出窗口,而不是RStudio中的图像(下面提供了示例数据帧和循环) 使用lappy迭代列名。使用[[将其子集,根据列名为绘图指定标题和x轴标签,并将绘图作为图像写入 lapply(df_col_names, fu

我有大量的数据帧和大量的变量,我需要为每个变量生成直方图(它显式地命名所使用的变量)。我喜欢在RStudio界面(不是弹出窗口)中有这些图像,我还需要将这些图像保存为JPEG格式的文件夹

我有一个循环,我用它来生成所有变量的直方图,但它并没有为每个元素标记每个直方图,它还将直方图导出为弹出窗口,而不是RStudio中的图像(下面提供了示例数据帧和循环)


使用
lappy
迭代列名。使用
[[
将其子集,根据列名为绘图指定标题和x轴标签,并将绘图作为图像写入

lapply(df_col_names, function(x) {
  jpeg(filename=sprintf('C:\\Images\\%s.jpeg', x))
  hist(df[[x]], main = x, xlab = x, breaks = 10)
  dev.off()
})

这将在名为
“A.jpeg”
“B.jpeg”
“C.jpeg”
的图像文件夹中创建3个绘图我知道您希望在文件和绘图窗口中同时显示直方图,即您希望访问多个设备。使用
dev.copy
,代码将是:

op <- par(mfrow=c(1, 3))  #
lapply(names(df)[-1], function(x) {
  hist(df[[x]], main=x, xlab=x, breaks=10)
  dev.copy(png, filename=paste0("plot_", x, ".png"))
  dev.off()
})
par(op)  #
lapply(df_col_names, function(x) {
  jpeg(filename=sprintf('C:\\Images\\%s.jpeg', x))
  hist(df[[x]], main = x, xlab = x, breaks = 10)
  dev.off()
})
op <- par(mfrow=c(1, 3))  #
lapply(names(df)[-1], function(x) {
  hist(df[[x]], main=x, xlab=x, breaks=10)
  dev.copy(png, filename=paste0("plot_", x, ".png"))
  dev.off()
})
par(op)  #
df <- structure(list(ID = 1:16, A = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 14, NA, NA, NA, 16), B = c(10, 0, 0, 0, 12, 12, 12, 12, 0, 
14, NA, 14, 16, 16, 16, 16), C = c(10, 12, 14, 16, 10, 12, 14, 
16, 10, 12, 14, 16, 10, 12, 14, 16)), row.names = c(NA, -16L), class = "data.frame")