当我尝试导入包含多个标题的数据时,我遇到了问题。
有文件:
Ry1_Ch_1_2013-8-23_21-56-49.txt
100.00 9918.21
36.89 7247.92
21.50 11825.56
Ry2_Ch_2_2013-8-23_21-56-49.txt
100.00 6103.52
97.81 7247.92
79.96 9536.74
78.73 3433.23
29.11 1144.41
28.85 12207.03
26.13 12969.97
24.75 50000000.00
16.26 34332.28
.
.
.
Ry28_Ch_1_2013-8-23_22-0-11.txt
100.00 10299.68
40.35 4577.64
26.50 3433.23
15.27 6484.99
该文件有多个空格,标题以 .txt 字符串结尾。
每个标头都有 2列,其中包含我想要绘制和分析的数据。我建议将每个表保存在变量中,然后使用它。
我尝试使用R中的 read.table 命令,但效果不佳。
答案 0 :(得分:1)
txt <- readLines(textConnection(" Ry1_Ch_1_2013-8-23_21-56-49.txt
100.00 9918.21
36.89 7247.92
21.50 11825.56
Ry2_Ch_2_2013-8-23_21-56-49.txt
100.00 6103.52
97.81 7247.92
79.96 9536.74
78.73 3433.23
29.11 1144.41
28.85 12207.03
26.13 12969.97
24.75 50000000.00
16.26 34332.28
.
.
.
Ry28_Ch_1_2013-8-23_22-0-11.txt
100.00 10299.68
40.35 4577.64
26.50 3433.23
15.27 6484.99"))
将排除少于7个字符的行,并使用{。{1}}匹配“.txt”来标记“section”开头。 'section'vaariable只是那些命中的cumsum所以'.txt'出现之间的行都将具有相同的节号。同一“部分”组内的read.table:
grepl
因此,将这些存储为列表和名称
section <- cumsum( grepl("txt", txt[nchar(txt)>7]) )
lapply( split(txt[nchar(txt)>7] , section),
function(t) read.table(text=t, skip=1) )
$`1`
V1 V2
1 100.00 9918.21
2 36.89 7247.92
3 21.50 11825.56
$`2`
V1 V2
1 100.00 6103.52
2 97.81 7247.92
3 79.96 9536.74
4 78.73 3433.23
5 29.11 1144.41
6 28.85 12207.03
7 26.13 12969.97
8 24.75 50000000.00
9 16.26 34332.28
$`3`
V1 V2
1 100.00 10299.68
2 40.35 4577.64
3 26.50 3433.23
4 15.27 6484.99