Как мне прочитать текстовый файл в R, если каждая запись является абзацем, и некоторые записи имеют 4 поля, а другие 6

Как можно читать текстовый файл, в котором каждая запись представляет собой абзац, а каждая новая строка обозначает отдельное поле. Сложность заключается в том, что некоторые записи имеют 4 строки, а некоторые - 6. @DWin пригвоздил мои вопросы, когда разница в количестве полей была 1, но все развалилось, когда их было две. Вы можете посмотреть его ответ здесь .

Вот моя последняя симуляция начального текста.

TheInstitute 5467
  telephone line 4125526987 x 4567
  datetime 2011110516 12:56
  blay blay blah who knows what, but anyway it may have a comma

TheInstitute 5467
  telephone line 4125526987 x 4567
  datetime 2011110516 12:58
  blay blay blah who knows what

TheInstitute 5467
  telephone line 412552999 x 4999
  bump phone line 4125527777
  bump pony pony oops 4125527777
  datetime 2011110516 12:59
  blay blay blah who knows what

TheInstitute 5467
  telephone line 4125526987 x 4567
  bump phone line 4125527777
  bump pony pony oops 4125527777
  datetime 2011110516 13:51
  blay blay blah who knows what, but anyway it may have a comma

TheInstitute 5467
  telephone line 4125526987 x 4567
  datetime 2011110516 14:56
  blay blay blah who knows what  

Вот как должен выглядеть результат. Фактически, это один шаг от того, что мне нужно. Я помещаю текстовое представление ASCII для R data.frame ниже. Вы увидите, что все находится во фрейме данных, но значения полей сдвинуты на два столбца, потому что некоторые записи имеют два дополнительных поля.

structure(list(institution = structure(c(1L, 1L, 1L, 1L, 1L), .Label = "TheInstitute 5467", class = "factor"), 
    telephoneline = structure(c(1L, 1L, 2L, 1L, 1L), .Label = c("telephone line 4125526987 x 4567", 
    "telephone line 412552999 x 4999"), class = "factor"), date.or.bump = structure(c(2L, 
    3L, 1L, 1L, 4L), .Label = c("bump phone line 4125527777", 
    "datetime 2011110516 12:56", "datetime 2011110516 12:58", 
    "datetime 2011110516 14:56"), class = "factor"), field4 = structure(c(2L, 
    1L, 3L, 3L, 1L), .Label = c("blay blay blah who knows what", 
    "blay blay blah who knows what, but anyway it may have a comma", 
    "bump pony pony oops 4125527777"), class = "factor"), field5 = structure(c(1L, 
    1L, 2L, 3L, 1L), .Label = c("", "datetime 2011110516 12:59", 
    "datetime 2011110516 13:51"), class = "factor"), field6 = structure(c(1L, 
    1L, 2L, 3L, 1L), .Label = c("", "blay blay blah who knows what", 
    "blay blay blah who knows what, but anyway it may have a comma"
    ), class = "factor")), .Names = c("institution", "telephoneline", 
"date.or.bump", "field4", "field5", "field6"), class = "data.frame", row.names = c(NA, 
-5L))

PS: Правильно ли я полагаю, что фрейм данных публикуется с использованием dput, или можно напрямую сохранить здесь файл .Rdata.

7
задан Community 23 May 2017 в 12:25
поделиться