Я использую 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 =')
я могу определить начальную строку блока, мне нужно извлечь, но я не знаю, как поручить R, чтобы перейти к первой пустой строке после 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
Что это удобный способ сделать это в R? Благодарю.
Спасибо @akrun, yo Ур вклад в это сообщество удивительно! – thiagoveloso