Как прочитать текст со сложными (нерегулярными) разделителями между столбцами в R-фрейм данных? - PullRequest
0 голосов
/ 22 февраля 2019

Я скопировал содержимое веб-страницы в файл .txt, и я хотел бы прочитать его в R должным образом.Вот как выглядят мои данные с 9 столбцами:

  5     11111  A, B                       z   L  2800   +25   11  2000.04.13         
  4      2222  C, D                       z   M  2730   -25   30  2001.05.23         
 66       333  E, F                       z   N  2680   +45   23  2002.12.14         
  7     44444  G, H                       z   O  2665    +5   21  2003.03.18         
111         5  I, J                       z   P  2645    +5   38  2004.02.22 

В каждой строке слева есть пробел (до начала первого столбца), длина которого различна для однозначных, двузначных,... цифры в первом столбце.Буквы A, B, C ... в третьем столбце - это имена и фамилии (разной длины), разделенные запятой и пробелом «один» (т. Е. A, B - полное имя первого лица).Разделитель между столбцами различен в каждой строке.

Кто-нибудь знает, как я могу прочитать этот текст в кадре данных с правильно заданными столбцами?

Спасибо!

1 Ответ

0 голосов
/ 22 февраля 2019

Попробуйте этот код, сначала используйте fread для чтения данных.Затем объедините столбцы 3 и 4, если необходимо

library(data.table)
data<-fread("dat.txt",sep=" ")

head(data)
    V1    V2 V3 V4 V5 V6   V7  V8 V9        V10
1:   5 11111 A,  B  z  L 2800  25 11 2000.04.13
2:   4  2222 C,  D  z  M 2730 -25 30 2001.05.23
3:  66   333 E,  F  z  N 2680  45 23 2002.12.14
4:   7 44444 G,  H  z  O 2665   5 21 2003.03.18
5: 111     5 I,  J  z  P 2645   5 38 2004.02.22

library(tidyverse)
data2<-unite_(data, "newcol", c("V3","V4"), sep="")

 head(data2)
    V1    V2 newcol V5 V6   V7  V8 V9        V10
1:   5 11111    A,B  z  L 2800  25 11 2000.04.13
2:   4  2222    C,D  z  M 2730 -25 30 2001.05.23
3:  66   333    E,F  z  N 2680  45 23 2002.12.14
4:   7 44444    G,H  z  O 2665   5 21 2003.03.18
5: 111     5    I,J  z  P 2645   5 38 2004.02.22
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...