【发布时间】:2020-08-04 23:06:35
【问题描述】:
我有一个使用 readLines() 提取的长文本文件 (txt)。它有一个反复出现的模式,但我只对一些特定的行感兴趣。这是我的文件的简短版本:
[1] "Set 1"
[2] "DVRJ, DVRI, DVRP, DVRR !Parameters"
[3] "DVRJ = 0.0012150"
[4] "DVRI = 0.0007576"
[5] "DVRP = 0.0006010"
[6] "DVRR = 0.0020851"
[7] "TSTR, TSPI, TSF, TSM !Temperature"
[8] " 0.00, 659.22, 1241.55, 1721.16"
[9] "TGDDTR,TGDDPI,TGDDF,TGDDM !GDD above TBD"
[10] " 0.00, 660.52, 1246.67, 1726.62"
[11] "DASTR , DASPI , DASF , DASM !Duration"
[12] " 0.00, 35.00, 70.00, 100.00"
[13] "Set 2"
[14] "DVRJ, DVRI, DVRP, DVRR !Parameters"
[15] "DVRJ = 0.0012713"
[16] "DVRI = 0.0007576"
[17] "DVRP = 0.0005982"
[18] "DVRR = 0.0021067"
[19] "TSTR, TSPI, TSF, TSM !Temperature"
[20] " 0.00, 644.65, 1229.76, 1704.44"
[21] "TGDDTR,TGDDPI,TGDDF,TGDDM !GDD above TBD"
[22] " 0.00, 645.42, 1234.33, 1711.56"
[23] "DASTR , DASPI , DASF , DASM !Duration"
[24] " 0.00, 35.00, 70.00, 100.00"
[25] "Set 3"
[26] "DVRJ, DVRI, DVRP, DVRR !Parameters"
[27] "DVRJ = 0.0012713"
[28] "DVRI = 0.0007576"
[29] "DVRP = 0.0005982"
[30] "DVRR = 0.0021067"
[31] "TSTR, TSPI, TSF, TSM !Temperature"
[32] " 0.00, 644.65, 1229.76, 1704.44"
[33] "TGDDTR,TGDDPI,TGDDF,TGDDM !GDD above TBD"
[34] " 0.00, 645.42, 1234.33, 1711.56"
[35] "DASTR , DASPI , DASF , DASM !Duration"
[36] " 0.00, 35.00, 70.00, 100.00"
我只想得到:
Set *value*
DVRJ = *value*
DVRI = *value*
DVRP = *value*
DVRR = *value*
之后,我想将结果转为如下所示的数据框:
Set DVRJ DVRI DVRP DVRR
*value* *value* *value* *value* *value*
*value* *value* *value* *value* *value*
*value* *value* *value* *value* *value*
我首先尝试使用strsplit() 取出不需要的行:
strsplit(txt, split = c("DVRJ, DVRI, DVRP, DVRR !Parameters",
"TSTR, TSPI, TSF, TSM !Temperature",
"TGDDTR,TGDDPI,TGDDF,TGDDM !GDD above TBD",
"DASTR , DASPI , DASF , DASM !Duration"
))
不仅不起作用,而且不会消除它们各自的值。我很感激任何帮助。谢谢!
【问题讨论】:
标签: r string parsing text text-files