извлечение таблицы из текстового файла

Я пытаюсь извлечь таблицы из текстовых файлов и нашел несколько более ранних постов здесь, посвященных аналогичным вопросам. Однако, похоже, никто не работает эффективно с моей проблемой. Самый полезный ответ, который я нашел, - на один из моих предыдущих вопросов здесь:R: удаление заголовков, нижних и нижних заголовков столбцов при чтении CSV-файла

Пример фиктивного текстового файла содержит:

> 
> 
> ###############################################################################
> 
> # Display AICc Table for the models above
> 
> 
> collect.models(, adjust = FALSE)
      model npar  AICc  DeltaAICc weight  Deviance
13      P1   19    94      0.00     0.78      9
12      P2   21    94      2.64     0.20      9
10      P3   15    94      9.44     0.02      9
2       P4   11    94    619.26     0.00      9
> 
> 
> ###############################################################################
> 
> # the three lines below count the number of errors in the code above
> 
> cat("ERROR COUNT:", .error.count, "\n")
ERROR COUNT: 0 
> options(error = old.error.fun)
> rm(.error.count, old.error.fun, new.error.fun)
> 
> ##########
> 
> 

Я написал следующий код для извлечения желаемой таблицы:

my.data <- readLines('c:/users/mmiller21/simple R programs/dummy.log')

top    <- '> collect.models\\(, adjust = FALSE)'
bottom <- '> # the three lines below count the number of errors in the code above'

my.data <- my.data[-c(grep(bottom, my.data):length(my.data))]
my.data <- my.data[-c(1:grep(top, my.data))]
my.data <- my.data[c(1:(length(my.data)-4))]
aa      <- as.data.frame(my.data)
aa

write.table(my.data, 'c:/users/mmiller21/simple R programs/dummy.log.extraction.txt', quote=F, col.names=F, row.name=F)
my.data2 <- read.table('c:/users/mmiller21/simple R programs/dummy.log.extraction.txt', header = TRUE, row.n,ames = c(1))
my.data2
   model npar AICc DeltaAICc weight Deviance
13    P1   19   94      0.00   0.78        9
12    P2   21   94      2.64   0.20        9
10    P3   15   94      9.44   0.02        9
2     P4   11   94    619.26   0.00        9

Я бы предпочел не писать, а потом читатьmy.data получить желаемый фрейм данных. До этого шага текущий код возвращает вектор строк дляmy.data:

[1] "      model npar  AICc  DeltaAICc weight  Deviance" "13      P1   19    94      0.00     0.78      9"   
[3] "12      P2   21    94      2.64     0.20      9"    "10      P3   15    94      9.44     0.02      9"   
[5] "2       P4   11    94    619.26     0.00      9"

Есть ли способ, как я могу преобразовать вышеупомянутый вектор строк в кадр данных, как вdummy.log.extraction.txt без записи, а затем чтенияmy.data?

Линия:

aa <- as.data.frame(my.data)

возвращает следующее, что выглядит так, как я хочу:

#                                              my.data
# 1       model npar  AICc  DeltaAICc weight  Deviance
# 2    13      P1   19    94      0.00     0.78      9
# 3    12      P2   21    94      2.64     0.20      9
# 4    10      P3   15    94      9.44     0.02      9
# 5    2       P4   11    94    619.26     0.00      9

Тем не мение:

dim(aa)
# [1] 5 1

Если я могу разделитьaa в столбцы, то я думаю, что у меня будет то, что я хочу без необходимости писать, а затем прочитатьmy.data.

Я нашел пост:Извлечение данных из текстовых файлов Однако в опубликованном ответе рассматриваемая таблица имеет фиксированное количество строк. В моем случае количество строк может варьироваться от 1 до 20. Также я бы предпочел использоватьbase R, В моем случае я думаю, что количество строк междуbottom и последняя строка таблицы является константой (здесь 4).

Я также нашел пост:Как извлечь данные из текстового файла, используя R или PowerShell? Тем не менее, в моем случае ширина столбцов не фиксирована, и я не знаю, как разделить строки (или строки), чтобы было только семь столбцов.

Учитывая все вышесказанное, возможно, мой вопрос на самом деле, как разделить объектaa в столбцы. Спасибо за любой совет или помощь.

РЕДАКТИРОВАТЬ:

Реальные журналы создаются суперкомпьютером и содержат до 90000 строк. Тем не менее, количество строк сильно варьируется между журналами. Вот почему я использовалtop а такжеbottom.

Ответы на вопрос(4)

Ваш ответ на вопрос