Как извлечь несколько наборов данных CSV из текстового файла с SAS? - PullRequest
0 голосов
/ 31 марта 2019

У меня есть файл с этим форматом

Text1
Men
2018
Text3
Text4
1,Age;2,AB;3,Januar;4,Februar;5,März;6,April;7,Mai;8,Juni;9,Juli;10,August;11,September;12,Oktober;13,November;14,Dezember;15,1.1.Jahr
0;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00
1;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00
2;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00
3;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00
4;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00
5;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00


Text1
Women
2018
Text3
Text4
1,Age;2,AB;3,Januar;4,Februar;5,März;6,April;7,Mai;8,Juni;9,Juli;10,August;11,September;12,Oktober;13,November;14,Dezember;15,1.1.Jahr
0;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00
1;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00
2;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00
3;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00
4;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00
5;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00;0,00

Как мне извлечь csv-блоки и сохранить их как два отдельных набора данных sas (один для мужчин и один для женщин)?

1 Ответ

0 голосов
/ 31 марта 2019

Не понимаю, почему вам нужно разделить его на несколько файлов.Просто прочитайте это как есть.Вы можете придумать лучшие имена для переменных, если хотите.Похоже, есть 5 строк текста, строка заголовка, а затем несколько строк данных.Отдельные разделы разделены пустыми строками.

data want ;
  infile have dsd dlm=';' truncover ;
  length text1-text5 $100 var1-var15 8 ;
  retain hunt 1 text1-text5;
  if hunt then do;
    do until (_infile_ ne ' ');
      input @;
      if _infile_=' ' then input;
    end;
    input (text1-text5) ($100. /)/ ;
    hunt=0;
  end;
  else do;
    input @;
    if _infile_ ne ' ' then do;
      input (var1-var15) (:commax.);
      output;
    end;
    else hunt=1;
  end;
  drop hunt;
run;

Результат:

      t      t     t      t      t                               v  v  v  v  v  v
      e      e     e      e      e    v  v  v  v  v  v  v  v  v  a  a  a  a  a  a
 O    x      x     x      x      x    a  a  a  a  a  a  a  a  a  r  r  r  r  r  r
 b    t      t     t      t      t    r  r  r  r  r  r  r  r  r  1  1  1  1  1  1
 s    1      2     3      4      5    1  2  3  4  5  6  7  8  9  0  1  2  3  4  5

 1  Text1  Men    2018  Text3  Text4  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 2  Text1  Men    2018  Text3  Text4  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 3  Text1  Men    2018  Text3  Text4  2  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 4  Text1  Men    2018  Text3  Text4  3  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 5  Text1  Men    2018  Text3  Text4  4  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 6  Text1  Men    2018  Text3  Text4  5  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 7  Text1  Women  2018  Text3  Text4  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 8  Text1  Women  2018  Text3  Text4  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 9  Text1  Women  2018  Text3  Text4  2  0  0  0  0  0  0  0  0  0  0  0  0  0  0
10  Text1  Women  2018  Text3  Text4  3  0  0  0  0  0  0  0  0  0  0  0  0  0  0
11  Text1  Women  2018  Text3  Text4  4  0  0  0  0  0  0  0  0  0  0  0  0  0  0
12  Text1  Women  2018  Text3  Text4  5  0  0  0  0  0  0  0  0  0  0  0  0  0  0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...