0

我对 R 并不陌生,但我找不到任何解决方案。我的目标是创建一个基于称为“通用变量格式”“*.uvf”的“未知”数据类型的文件,并从另一个文件的数据中填充它的参数。该格式适用于不同类型的(水文)时间序列。

问题是,它的标题是具有强大结构定义的 4 行标题类型。我想将每个单元格定义为一列。

一个例子:头文件中的第三行应该这样构造:

  • 第 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 函数读取前四行,并从这四行中解析出您想要的详细信息:

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(.))单行或使用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           "

同样,然后从第三行和第四行中提取其余参数。

第 2 步:然后使用read.fwf()skip=4 参数和从第一步导出的格式参数来完成该过程。

于 2012-06-06T16:18:20.963 回答