0

私はRに慣れていませんが、これに対する解決策が見つかりません。私の目標は、「ユニバーサル変数フォーマット」「*.uvf」と呼ばれる「不明な」データ型に基づいたファイルを作成し、別のファイルのデータからそのパラメータを埋めることです。この形式は、さまざまな種類の (水文学的) 時系列に使用されます。

問題は、ヘッダーが強力な構造定義を持つ 4 行のヘッダー タイプであることです。各セルを列として定義したい。

例: ヘッダー ファイルの 3 行目は、次のように構成する必要があります。

  • コラム1-15:「場所」
  • 16~25列目:「X座標」
  • 列 26-35:「Y 座標」
  • 等々...

ベクトル「X」が行 3 の列 16-25 で 10 のようにそれ以上の桁数を取得しないことが重要です。そうしないと、プログラムは X 座標を読み取ることができません。

別のファイルから X 座標を読み取り、X というベクトルとして保存し、上記で説明した場所に保存したいと考えています。この後、「実際のデータ」(降水量など) が、各日の行ごとにヘッダーの下に表示されます。

uvf フォーマット (ドイツ語)

例:

*Z
Abfluss        m3/s            K
A                 2509510   5636680       120
86110100158611010130
8611010015 0.184    
8611010030 0.189    
8611010045 0.191    
8611010100 0.1940000
8611010115 0.2010000
8611010130 0.2010000

ドイツ語のエントリがいくつかあります。しかし、それはまったく問題にはなりません。

4

1 に答える 1

0

ステップ 1: readLines 関数を使用して最初の 4 行を読み取り、それらの 4 行から必要な詳細を解析します。

1. Zeile : *Z
2. Zeile : Spalte 1-15 Parameter, Spalte 16-30 Einheit, Spalte 32 DefArt (I,K,M)
3. Zeile : Spalte 1-15 Ort, Spalte 16-25 X, Spalte 26-35 Y, Spalte 36-45 Höhe
4. Zeile : Spalte 1-10 Start-Zeitpunkt, Spalte 11-20 End-Zeitpunkt 

read.fwf(textConnection(.))2 行目は、1 行または を使用して解析できますsubstr

fmtlines <- readLines(textConnection("*Z
 Abfluss        m3/s            K
 A                 2509510   5636680       120
 86110100158611010130
 8611010015 0.184    
 8611010030 0.189    
 8611010045 0.191    
 8611010100 0.1940000
 8611010115 0.2010000
 8611010130 0.2010000
 Einheit<- substr( fmtlines[2], 16, 30 )
 Einheit
[1] "m3/s           "

同様に、3 行目と 4 行目から残りのパラメーターを抽出します。

ステップ 2: 次にread.fwf()、skip=4 パラメーターと、最初のステップから派生したフォーマット パラメーターを使用して、プロセスを完了します。

于 2012-06-06T16:18:20.963 に答える