如何重复按组选择特定行

时间:2019-06-11 13:30:15

标签: r

我是这里的新手,也是r的初学者,如果我不太清楚,我已经表示歉意。 我需要从包含以下内容的文件中读取特定行:

Année;1986;
;
Débits mensuels en m3/s;
;QMM;QMN;V;
J;;;;;
F;;;;;
M;;;;;
A;;;;;
M;;;;;
J;;;;;
J;;;;;
A;;;;;
S;;;;;
O;;;;;
N;;;;;
D;;;;;

Statistiques;
;;Janvier;Février;Mars;Avril;Mai;Juin;Juillet;Août;Septembre;Octobre;Novembre;Décembre;1986
Ecoulement mensuel;Validité;;;;;;;;;;;;;;
;();;;;;;;;;;;;;;
;();;;;;;;;;;;;;;
;();;;;;;;;;;;;;;
;
Ecoulement naturel reconstitué;();;;;;;;;;;;;;;
;();;;;;;;;;;;;;;
;();;;;;;;;;;;;;;
;
Maximum instantané;();;;;;;;;;;;;;;
;Date;*;*;*;*;*;*;*;*;*;*;*;*;*;
;();;;;;;;;;;;;;;
;Date;*;*;*;*;*;*;*;*;*;*;*;*;*;
;

Débits journaliers;
Jour/Mois;Janvier;;Février;;Mars;;Avril;;Mai;;Juin;;Juillet;;Août;;Septembre;;Octobre;;Novembre;;Décembre;;
;Débit;Validité;Débit;Validité;Débit;Validité;Débit;Validité;Débit;Validité;Débit;Validité;Débit;Validité;Débit;Validité;Débit;Validité;Débit;Validité;Débit;Validité;Débit;Validité;
1;;;;;;;;;;;;;;;;;;;;;;;;;
2;;;;;;;;;;;;;;;;;;;;;;;;;
3;;;;;;;;;;;;;;;;;;;;;;;;;
4;;;;;;;;;;;;;;;;;;;;;;;;;
5;;;;;;;;;;;;;;;;;;;;;;;;;
6;;;;;;;;;;;;;;;;;;;;;;;;;
7;;;;;;;;;;;;;;;;;;;;;;;;;
8;;;;;;;;;;;;;;;;;;;;;;;;;
9;;;;;;;;;;;;;;;;;;;;;;;;;
10;;;;;;;;;;;;;;;;;;;;;;;;;
11;;;;;;;;;;;;;;;;;;;;;;;;;
12;;;;;;;;;;;;;;;;;;;;;;;;;
13;;;;;;;;;;;;;;;;;;;;;;;;;
14;;;;;;;;;;;;;;;;;;;;;;;;;
15;;;;;;;;;;;;;;;;;;;;;;;;;
16;;;;;;;;;;;;;;;;;;;;;;;;;
17;;;;;;;;;;;;;;;;;;;;;;;;;
18;;;;;;;;;;;;;;;;;;;;;;;;;
19;;;;;;;;;;;;;;;;;;;;;;;;;
20;;;;;;;;;;;;;;;;;;;;;;;;;
21;;;;;;;;;;;;;;;;;;;;;;;;;
22;;;;;;;;;;;;;;;;;;;;;;;;;
23;;;;;;;;;;;;;;;;;;;;;;;;;
24;;;;;;;;;;;;;;;;;;;;;;;;;
25;;;;;;;;;;;;;;;;;;;;;;;;;
26;;;;;;;;;;;;;;;;;;;;;;;;;
27;;;;;;;;;;;;;;;;;;;;;;;;;
28;;;;;;;;;;;;;;;;;;;;;;;;;
29;;;;;;;;;;;;;;;;;;;;;;;;;
30;;;;;;;;;;;;;;;;;;;;;;;;;
31;;;;;;;;;;;;;;;;;;;;;;;;;


Année;1987;
;
Débits mensuels en m3/s;
;QMM;QMN;V;
J;;;;;
F;;;;;
M;;;;;
A;;;;;
M;;;;;
J;;;;;
J;;;;;
A;;;;;
S;;;;;
O;;;;;
N;;;;;
D;;;;;

Statistiques;
;;Janvier;Février;Mars;Avril;Mai;Juin;Juillet;Août;Septembre;Octobre;Novembre;Décembre;1986
Ecoulement mensuel;Validité;;;;;;;;;;;;;;
;();;;;;;;;;;;;;;
;();;;;;;;;;;;;;;
;();;;;;;;;;;;;;;
;
Ecoulement naturel reconstitué;();;;;;;;;;;;;;;
;();;;;;;;;;;;;;;
;();;;;;;;;;;;;;;
;
Maximum instantané;();;;;;;;;;;;;;;
;Date;*;*;*;*;*;*;*;*;*;*;*;*;*;
;();;;;;;;;;;;;;;
;Date;*;*;*;*;*;*;*;*;*;*;*;*;*;
;

Débits journaliers;
Jour/Mois;Janvier;;Février;;Mars;;Avril;;Mai;;Juin;;Juillet;;Août;;Septembre;;Octobre;;Novembre;;Décembre;;
;Débit;Validité;Débit;Validité;Débit;Validité;Débit;Validité;Débit;Validité;Débit;Validité;Débit;Validité;Débit;Validité;Débit;Validité;Débit;Validité;Débit;Validité;Débit;Validité;
1;;;;;;;;;;;;;;;;;;;;;;;;;
2;;;;;;;;;;;;;;;;;;;;;;;;;
3;;;;;;;;;;;;;;;;;;;;;;;;;
4;;;;;;;;;;;;;;;;;;;;;;;;;
5;;;;;;;;;;;;;;;;;;;;;;;;;
6;;;;;;;;;;;;;;;;;;;;;;;;;
7;;;;;;;;;;;;;;;;;;;;;;;;;
8;;;;;;;;;;;;;;;;;;;;;;;;;
9;;;;;;;;;;;;;;;;;;;;;;;;;
10;;;;;;;;;;;;;;;;;;;;;;;;;
11;;;;;;;;;;;;;;;;;;;;;;;;;
12;;;;;;;;;;;;;;;;;;;;;;;;;
13;;;;;;;;;;;;;;;;;;;;;;;;;
14;;;;;;;;;;;;;;;;;;;;;;;;;
15;;;;;;;;;;;;;;;;;;;;;;;;;
16;;;;;;;;;;;;;;;;;;;;;;;;;
17;;;;;;;;;;;;;;;;;;;;;;;;;
18;;;;;;;;;;;;;;;;;;;;;;;;;
19;;;;;;;;;;;;;;;;;;;;;;;;;
20;;;;;;;;;;;;;;;;;;;;;;;;;
21;;;;;;;;;;;;;;;;;;;;;;;;;
22;;;;;;;;;;;;;;;;;;;;;;;;;
23;;;;;;;;;;;;;;;;;;;;;;;;;
24;;;;;;;;;;;;;;;;;;;;;;;;;
25;;;;;;;;;;;;;;;;;;;;;;;;;
26;;;;;;;;;;;;;;;;;;;;;;;;;
27;;;;;;;;;;;;;;;;;;;;;;;;;
28;;;;;;;;;;;;;;;;;;;;;;;;;
29;;;;;;;;;;;;;;;;;;;;;;;;;
30;;;;;;;;;;;;;;;;;;;;;;;;;
31;;;;;;;;;;;;;;;;;;;;;;;;;

我只需要提取“Débits新闻工作者”之间的行;以及“ 31 ;;;;;;;;;;;;;;;;;;;;;; 我的文件中有2000多行,因为我拥有20多年的所有这些数据。

我的文件由字符行组成。

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

看看以下内容是否有帮助

library(tidyverse)
file = read_lines("./Data/SampleText.txt")

grep("Débits journaliers;", file) %>% 
  map(~ file[.x: (.x+34)]) %>% 
  unlist # 2 lines after Debits + 31 lines + 1 blank