Читать несколько таблиц из одного текстового файла? - PullRequest
9 голосов
/ 01 сентября 2011

У меня есть один файл .txt с несколькими таблицами в нем. Есть ли способ прочитать каждый из них в отдельный фрейм данных? Каждой «таблице» предшествует строка с заголовком, поэтому я могу искать эти заголовки.

Спасибо за помощь.

Ответы [ 2 ]

2 голосов
/ 01 сентября 2011

Вы захотите прочитать весь файл, а затем проанализировать его для заголовков таблицы или пустых строк.Я бы сделал заголовки переменной, которую вы установили, и чтобы она была в верхней части скрипта, чтобы вы могли легко изменять, если / когда вы вносите изменения в таблицы в вашем текстовом файле.

1 голос
/ 28 сентября 2012

Простой поиск в Google вернул это. Отлично сработало для меня.

> x <- readLines(textConnection("1
+ Pietje
+ I1 I2 Value
+ 1  1  0.11
+ 1  2  0.12
+ 2  1  0.21
+
+ 2
+ Jantje
+ I1 I2 I3 Value
+ 1  1  1  0.111
+ 3  3  3  0.333"))
> closeAllConnections()
> start <- grep("^[[:digit:]]+$", x)
> mark <- vector('integer', length(x))
> mark[start] <- 1
> # determine limits of each table
> mark <- cumsum(mark)
> # split the data for reading
> df <- lapply(split(x, mark), function(.data){
+     .input <- read.table(textConnection(.data), skip=2, header=TRUE)
+     attr(.input, 'name') <- .data[2]  # save the name
+     .input
+ })
> # rename the list
> names(df) <- sapply(df, attr, 'name')
> df
$Pietje
  I1 I2 Value
1  1  1  0.11
2  1  2  0.12
3  2  1  0.21

$Jantje
  I1 I2 I3 Value
1  1  1  1 0.111
2  3  3  3 0.333

Источник .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...