我已经获得了一个空行作为分隔符的表格。
像这样的东西
A 45
B 54
C 5
D 4
E 96
F 0
G 12
H 154
I 3
有没有办法将这个文件读入单独的data.frames(第一列中有A1,A2,A3;第一列中有B1,B2,B3,B4;第二列有C1,C2)第一栏)?
编辑:我无法通过第1列或第2列告诉您条目所属的位置。所以我无法读取整个文件并在以后拆分。
答案 0 :(得分:1)
在another solution的帮助下堆栈溢出,我做了这个。在这种情况下,每个"表"可以有不同数量的列,如我的示例中的第三个表中所示。
我觉得它可以更有效率,所以欢迎提出建议。
tab <- textConnection("A 45
B 54
C 5
D 4
E 96
F 0
G 12
H 154 354
I 3 489
")
tablines <- trimws(readLines(tab))
split.vec <- function(vec, sep = 0) {
is.sep <- vec == sep
split(vec[!is.sep], cumsum(is.sep)[!is.sep])
}
splittablines <- split.vec(tablines, sep = "")
lapply(splittablines, function(x) read.table(textConnection(paste(x, collapse = "\n"))))
结果:
$`0`
V1 V2
1 A 45
2 B 54
3 C 5
$`1`
V1 V2
1 D 4
2 E 96
3 F 0
4 G 12
$`2`
V1 V2 V3
1 H 154 354
2 I 3 489
答案 1 :(得分:0)
阅读整个文件。
然后使用grepl
过滤第一列。这将根据第一列中的字符为您提供单独的文件。