2017-04-23 9 views
-1

私は水文学モデリングのRのちょうど習得者です。私はreadLinesによって読み取られるフラットファイルを持っています。私はgrepして値をプロットしたいと思います。値は、何千もの時間間隔であるが、的アルゴリズムは、ちょうどここで9まで0の時間に対する値をプロットされ、私は数字に文字を変換するとき、コードRデータの読み込みとプロット

library(stringr) 

x <- readLines("D:/Rlearning/Mohsin HYDRUS/Mohsin practice/Balance.out") 

## Find all lines with [T] 
a <- grep("[T]", x, value = T) 
### Find all the lines that also say Time in that subset 
b <- grep("Time", a , value = T) 
#### Remove the first 2 lines in b (they didn't have a watbalR associated with it) 
c <- b[-c(1,2)] 
### Find all WatBalR lines 
d <- grep("WatBalR", x, value = T) 
#### Put them together in a dataframe 
data <- data.frame(time =c, watbalr = d) 
#### Still need to filter numbers from each line don't know how to do it off the top of my head should be able to google it though like "pulling numbers from a string in R" or something. 
#### Hopefully this helps 

# Extract the numeric values from the two character vectors 
# Use sub to omit all the characters before the first digit 
times <- sub("^.+?(\\d)", "\\1", c) 
WatBlaR <- sub("^.+?(\\d)", "\\1", d) 

# convert the characters to numbers 
times <- as.numeric(times) 
WatBlaR <- as.numeric(WatBlaR) 

# plot 
plot(x = times, y = WatBlaR) 

問題が開始され、ある専門家は、ここではこれをしませんでした数日前には正確な要件が得られませんでした。

私は新しいです、私は質問をしようとしていて、できませんでした。私はこのサイトからもっと学ぶことを願っています。

+0

期待される出力は何ですか?あなたが何を意味しているのかという疑問からはっきりしない* WatBalR *のTimeとSecondカラムの値を作りたい。それらを集約する方法をお探しですか? – iled

+0

ありがとう、K..pradeep。私のコンセプトを明確にする資料を私に送ってもらえますか?あなたは素晴らしいです。私は先週、それにこだわっていた。私はこのモデルの最適化に取り組んでいます。私の最初の任務は、Rの単純な最適化手法です。実行可能なパッケージ名と材料を私に送ってください。ありがとう、ありがとう、ありがとう。今度は完全なファイルについて作業します。 –

+0

コメントシステムの乱用をしないでください。さらに詳しい情報を提供したい場合は、質問を編集してください。 – iled

答えて

0

提供された文字列から数値を抽出する必要があります。

# Extract the numeric values from the two character vectors 
# Use sub to omit all the characters before the first digit 
times <- sub("^.+?(\\d)", "\\1", c) 
WatBlaR <- sub("^.+?(\\d)", "\\1", d) 

# convert the characters to numbers 
times <- as.numeric(times) 
WatBlaR <- as.numeric(WatBlaR) 

# plot 
plot(x = times, y = WatBlaR) 

enter image description here

提案:変数名としてcは使用しないでください。 cは、値をベクトルまたはリストに結合するための関数です。変数にcを使用すると問題が発生する可能性があります。

関連する問題