晚上好,批量多条曲线
我努力使产生从每一个txt文件,已在一批由仪器之前生成一个不同情节的R脚本,并在同一脚本的文件夹。
我很不熟悉R和编程(一般1-2个月的练习)。
.txt文件有两列,V1和V2,没有标题。
这里是我已经生成的代码:
```
library(tidyverse)
library(ggsci)
fileNames <- list.files(getwd(), full.names = T, pattern="txt")
#print(fileNames)
Speed_selection <- grep('speed', fileNames, value=TRUE)
length <- length(Speed_selection)
i <- 1
if(i<=length){
#print(Speed_selection[i])
Speed <- read.table((Speed_selection[i]), header=F, sep="")
p <- ggplot(Speed)+geom_line(aes(V1,V2))
ggsave("plot.pdf", p)
i=i+1
i
} else {
print("Finished")
}
```
我生成的代码之前的想法是以下几点:
- 我得到一个文件夹中所有txt文件的列表。我检查列表,它只打印txt文件。
- 我只选择名称中包含“速度”的.txt文件。
- 我的1的值分配给我
- 的如果循环:如果i < =除了所选择的文件
- 读取在文件选择第i ^个文件的数目(其中i = 1 ,第一个文件)
- 我做的情节我保存的目录
- 我用1
所以NEX增加我t轮将从i = 2开始
问题是,我只得到一个绘图(对应于第一个文件),因为循环没有经过“Speed_selection”的所有长度。
我在做什么错?
感谢您的帮助,
最好的问候。
如果你有一个循环,将覆盖“plot.pdf”每一次,所以你只会得到一个输出。你需要在开始时使用'for'来实现循环。另外,'ggsave'完成后'p < - plot(V2〜V1,Speed,“l”)'是什么? –
谢谢你的回复。我认为是这样,但它只是绘制选择列表中的第一个文件,而不是第二个文件(因为它将作为覆盖的结果而发生)......也感谢您在ggsave之后的绘图上的修正。我试图看看正常情节功能是否能解决问题。我在原文中更正 – Mollan