С помощью другого решения здесь при переполнении стека я сделал это. В этом случае каждая «таблица» может иметь различное количество столбцов, как показано в третьей таблице в моем примере.
Я чувствую, что это может быть более эффективным, поэтому предложения приветствуются.
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