こんばんは、私は以前、機器によってバッチで生成されたすべての.txtファイルから一つの異なるプロットを生成Rスクリプトを作成しようとしていますバッチ複数のプロット
、と同じでありスクリプトのフォルダ。
私は非常にRとプログラミング全般(現在まで1〜2ヶ月)で非常に劣っています。
.txtファイルには、それぞれV1とV2の2つの列があり、ヘッダーはありません。
- 私はフォルダ内のすべてのtxtファイルのリストを取得:コードを生成する前に
``` 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ファイルだけを出力します。 - "speed"という名前の.txtファイルのみを選択します。
- I 1ザ・ループなら
- Iの値を代入する:iが選択されたファイル
- の番号i = 1のファイル選択のI ^番目のファイルを(読み取りより< =である場合、最初のファイル)
- 私はそれを私が私がNEX 1.
により増加したディレクトリ
問題は、ループが "Speed_selection"のすべての長さを通過していないので、私は1つのプロット(最初のファイルに対応する)を取得するだけです。
私は間違っていますか?
ありがとう、
お待ちしております。
あなたは、単一の出力を取得するつもりだので、それは、「plot.pdf」一つ一つの時間を上書きするループを持っていた場合。ループを実装するには、最初に「for」を持つ必要があります。また、 'ggsave'が達成された後、' p < - plot(V2〜V1、Speed、 "l") 'とは何ですか? –
お返事ありがとうございます。私はそう思っていましたが、選択リストの最初のファイルをプロットしているだけで、2番目のファイルではありません(上書きの結果として発生するように)... ggsave後のプロットの修正についてもありがとうございます。私は、通常のプロット関数が問題を解決するかどうかを調べようとしていました。私は元のポスト – Mollan