Макрос SAS для извлечения выбранных строк из таблицы - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть набор данных с 20 наблюдениями и 6 переменными ID, пол, возраст, рост, вес, год. Все числовые, кроме пола переменной. Я хотел бы извлечь 10 наблюдений, начиная с пятого наблюдения, используя макросы SAS.

У меня есть код ниже, чтобы импортировать и извлечь выбранные строки из таблицы.

Я хочу извлечь выбранные строки, используя макросы как часть упражнения. Пожалуйста, дайте мне знать ваш совет, как использовать макросы для извлечения конкретных наблюдений. Спасибо за ваше время.

%macro one (a, b, c);
    proc import out=&a
    datafile= "C:\Users\komal\Desktop\&b"
    dbms=&c replace;
    getnames=yes;
    run;
%mend one;

%one (outcsv, Sample.csv, csv);

data test;
    set outcsv;
    if _N_ in (5,6,7,8,9,10,11,12,13,14) then output;
    run;

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

Нет необходимости использовать PROC IMPORT для чтения из файла CSV.Особенно, если вы уже знаете имена / типы переменных.Так что-то вроде этого должно работать.

data want ;
  infile "C:\Users\komal\Desktop\&b" dsd firstobs=5 obs=14 truncover ;
  input ID Gender $ Age Height Weight Year ;
run;

Возможно, вам придется использовать от 6 до 15 вместо этого, если файл имеет строку заголовка.

0 голосов
/ 25 апреля 2018

вы могли бы сделать что-то вроде этого

 %macro one (a, b, c,strtpt,endpt);
    proc import out=&a
    datafile= "C:\Users\komal\Desktop\&b"
    dbms=&c replace;
   getnames=yes;
   run;
  data test;
   set &a;
    if _n_ >= &strtpt and _n_ =< &endpt;
 run;
 %mend one;

%one (outcsv, Sample.csv, csv,5,14);
...