晚上好,批量多條曲線
我努力使產生從每一個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