私は、次のテキストファイルの内容を読み取るためにreadLines
を使用しています:R - 文字列と空白行の間でテキストを抽出するには?
*--------------------------------------------------------------------*
* 7. Measured data *
* And option to force measured LAI during simulation *
* (instead of using simulated values) *
*--------------------------------------------------------------------*
* Observed phenology: only required if program DRATES is run!!
IDOYTR = 194 ! Day of transplanting (give 0 if direct-seeded)
IYRTR = 1991 ! Year of transplanting (give 0 if direct-seeded)
IDOYPI = 240 ! Day of panicle initiation (give -99 if not observed)
IYRPI = 1991 ! Year of panicle initiation (give -99 if not observed)
IDOYFL = 260 ! Day of flowering
IYRFL = 1991 ! Year of flowering
IDOYM = 288 ! Day of maturity
IYRM = 1991 ! Year of maturity
*Leaf Area Index (m2 leaf/m2 ground):
LAI_OBS =
1991., 182., 0.00 ,
1991., 194., 0.028,
1991., 202., 0.185,
1991., 211., 0.325,
1991., 219., 1.048,
1991., 240., 3.680,
1991., 254., 5.010,
1991., 260., 4.628,
1991., 273., 3.520,
1991., 288., 1.938
*-- Parameter to set forcing of observed LAI during simulation
LAI_FRC = 0 ! No forcing
*LAI_FRC = 2 ! Forcing
そして私は、プログラムLAI_OBS =
で識別されるテキストのブロックのみを抽出する必要があります。 LAI_OBS =
が配置されている行番号は、ファイルごとに異なります。したがって、文字列LAI_OBS =
と次の空白行の間のすべてのテキストを読み取る方法を見つける必要があります。
これまでのところ、私が使用しています:
l <- readLines('file.txt')
which(obs.lai=='LAI_OBS =')
を私は抽出する必要がブロックの最初の行を識別することができますが、私はLAI_OBS =
後の最初の空白行に移動するにはRを指示する方法がわかりません。
私は必要な結果はこのように見て、データフレームです:
1991 182 0.00
1991 194 0.028
1991 202 0.185
1991 211 0.325
1991 219 1.048
1991 240 3.680
1991 254 5.010
1991 260 4.628
1991 273 3.520
1991 288 1.938
Rでこれを行うための便利な方法は何ですか?ありがとう。
ありがとう@akrun、よこのコミュニティへの貢献は素晴らしいです! – thiagoveloso