在Apply循环中为多个数据集创建多平面图

ccheng

阿罗哈!我是R的新手,目前正经历陡峭的学习曲线。如果我弄错所有R语言,我深表歉意。

我有很多数据集,每个数据集都有6列数字数据。所以:

  • df1:第1到第6列
  • df2:第1到第6列
  • df3:第1列至第6列...依此类推

我可以lapply()使用以下代码在一个循环外的一个PDF中创建多面板图

pdf(file="plot1.pdf, width=8.5, height=11)
par(mfrow=c(3,3), oma=c(1,1,8,1))
plot(a ~ b, df1)
plot(a ~ b, df2)
plot(a ~ b, df3)
...
dev.off()

由于我想绘制很多数据集并在同一PDF中显示它们,因此我尝试使用lapply()循环,这样就可以循环浏览这些数据集。在下面的示例中,假设我有9个数据集,所以我可以创建一个由3行乘3列组成的一页多图。

Test <- lapply(1:length(files), function(x) {     # files = list of 9 file names
  a <- as.data.table(read.csv(files[x], header = TRUE))
  pdf(file="plot1.pdf, width=8.5, height=11)
  par(mfrow=c(3,3), oma=c(1,1,8,1))
  plot(col 1 ~ col 2, a)
  dev.off()
})

当我运行这段代码时,我只得到一个图就得到了一个PDF。该图属于文件列表中的最后一个数据集。我究竟做错了什么?

迈克尔·劳伦斯

您只需要将设备的打开(pdf()),配置(par())和关闭(dev.off()移到循环外即可。另外,您可以直接循环遍历文件,而无需创建data.table。还修复了您的公式语法。

pdf(file="plot1.pdf", width=8.5, height=11)
par(mfrow=c(3,3), oma=c(1,1,8,1))
Test <- lapply(files, function(x) {
  a <- read.csv(x, header = TRUE)
  plot(col1 ~ col2, a)
})
dev.off()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

R-在循环中创建多个数据集的子集

来自分类Dev

如何创建多个数据集,每个数据集在for循环中迭代一次?

来自分类Dev

为数据集创建多个数组

来自分类Dev

如何创建返回平面图的特征

来自分类Dev

在每个循环中创建多个数据表

来自分类Dev

使用单个数据集创建多个饼图

来自分类Dev

互动平面图

来自分类Dev

为多个数据集动态创建数组

来自分类Dev

在循环中绑定多个数据帧

来自分类Dev

在RXJava中对多个平面图的结果进行排序

来自分类Dev

RxJava 和 Retrofit 使用多个平面图处理分页

来自分类Dev

我需要在循环中创建多个数据库连接吗?

来自分类Dev

rxjs平面图丢失

来自分类Dev

平面图游戏的算法

来自分类Dev

期货-地图与平面图

来自分类Dev

如何创建一个循环以合并多个数据集以评估所有可能的组合(两类,三类,多类)

来自分类Dev

循环从一个数据帧在matplotlib中创建多个图?

来自分类Dev

使用数据框的for循环创建多个图

来自分类Dev

循环创建多个数据框

来自分类Dev

循环创建多个数据框

来自分类Dev

使用循环创建多个数据帧

来自分类Dev

在Matlab中的for循环中为子图创建注释框

来自分类Dev

在foreach循环中使用多个数据项

来自分类Dev

在foreach循环中使用多个数据项

来自分类Dev

在循环中创建的Matplotlib子图不显示数据

来自分类Dev

for 循环中的多个数组

来自分类Dev

Chart.js 雷达图多个数据集

来自分类Dev

来自多个数据集的堆积柱形图

来自分类Dev

在for循环中为数据集分配交叉验证折叠