【问题标题】:for loop for analysis of many files用于分析许多文件的 for 循环
【发布时间】:2019-11-13 16:46:00
【问题描述】:

我正在尝试使用 for 循环编写一个 R 脚本来执行统计分析并为每个文件生成图表。

我的文件以 .txt 结尾 这是我的脚本,但需要改进如下。

files <- list.files(path="/Users/MD/Desktop/Files/", pattern="*.txt")
for (i in files){
  i_automean <- mean(i[1:5651,10])
  i_xmean <- mean(i[5652:7977,10])
  barplot(i[,10]/i_automean, ylim = c(0,2.5))
  abline(h=1, col ="red", lwd =3)
  abline(h=22.06126/i_automean, col ="red", lwd =3)
  abline(v=2300*1.2, col="blue", lwd =3)
  abline(v=5651*1.2, col="blue", lwd=3)
  pdf(i.pdf, "/Users/MD/Desktop/Files/");
  dev.off()
} 

Error in i[1:5651, 10] : incorrect number of dimensions

当我为每个文件一个一个地运行每个命令时,我没有收到错误:

我一一运行的命令是:

File1 <- read.table(file = "/Users/MD/Desktop/Files/File1.txt")
File1
File1_automean <- mean(File1[1:5651,10])
File1_automean
File1_Xmean <- mean(File1[5652:7977,10])
File1_Xmean
barplot(File1[,10]/18.02876, ylim = c(0,2.5))
abline(h=1, col ="red", lwd =3)
abline(h=22.06126/18.02876, col ="red", lwd =3)
abline(v=2300*1.2, col="blue", lwd =3)
abline(v=5651*1.2, col="blue", lwd=3)

注意:18.02876 是 File1_automean 结果。

【问题讨论】:

  • 也许我错了,但我认为您忘记在第一段代码中加载文件,您应该在automean 部分之前添加i = read.table(file = i)。现在,i 是一个字符向量。但是,如果将您的文件加载为i,我敢打赌,您在最后的命名部分会遇到一些问题。
  • 我添加了一个建议修订您的代码的答案。

标签: r function loops for-loop


【解决方案1】:

你觉得这个解决方案怎么样?

files <- list.files(path="/Users/MD/Desktop/Files/", pattern="*.txt")
setwd("/Users/MD/Desktop/Files")
for (j in 1:length(files)){
  i <- read.table(files[j])
  i_automean <- mean(i[1:5651,10])
  i_xmean <- mean(i[5652:7977,10])
  barplot(i[,10]/i_automean, ylim = c(0,2.5))
  abline(h=1, col ="red", lwd =3)
  abline(h=22.06126/i_automean, col ="red", lwd =3)
  abline(v=2300*1.2, col="blue", lwd =3)
  abline(v=5651*1.2, col="blue", lwd=3)
  pdf(paste0(files[j],".pdf"))
  graphics.off()
} 

【讨论】:

  • 我需要做的一件事是打开 pdf 文件并减小它们的大小,因为它说图形边距太大。 Pdf 文件无法打开。
  • @user12367991,在 Rstudio 控制台中,尝试运行 dev.off 几次(它会强制重置 rstudio 中的图形设备 (support.rstudio.com/hc/en-us/articles/…)。我还将编辑我的代码以使用 @ 987654325@ 而不是(我认为)更适合运行脚本。否则,它可能依赖于 Rstudio,也许您可​​以尝试直接在 R 终端中运行此脚本。更多讨论在这里:(stackoverflow.com/questions/12766166/…
猜你喜欢
  • 2011-10-25
  • 1970-01-01
  • 1970-01-01
  • 2013-11-13
  • 2020-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多