Как читать данные InStream - PullRequest
       7

Как читать данные InStream

0 голосов
/ 29 сентября 2018

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

Я написал следующий код, и все, что я хочу сделать, это правильно прочитать данные, но я не могу найти способпоручить САС читать ИМТ.

Есть две вещи, которые я хочу сделать.

1), пусть SAS сохранит все число, включая все десятичные дроби.2) при печати я хотел бы приблизить число к двум десятичным точкам.

data HW02EX01;
  input Patient 1-2  Weight 5-7 Height 9-10 Age 13-14 BMI 17-26 Smoking $ 29-40 Asthma $ 45-48;
  cards;
14  167 70  65  23.9593878  never           no
run;

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

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

См. Комментарии в коде, в частности, использование операторов LENGTH, FORMAT и INFORMAT для управления вводом и выводом данных.

data HW02EX01;
    *specify the length of the variables;
    length patient $8. weight height age bmi 8. smoking asthma $8.; 


    *specify the informats of the variables; 
    *an informat is does the variable look like when trying to read it in;
    informat patient $8. weight height age bmi best32.;

    *formats control how infomraiton is displayed in output/tables;
    format bmi 32.2 weight height age 12.;

    input Patient $ Weight Height Age BMI Smoking  Asthma ;
    cards;
14 167 70 65 23.9593878 never no
;

run;
0 голосов
/ 29 сентября 2018

друг.

Может быть, будет полезен следующий код:

data HW02EX01_;
    input Patient Weight Height Age BMI Smoking : $20. Asthma $10.;
    format BMI 32.2;
    cards;
14 167 70 65 23.9593878 never no
;

В комментарии я хотел бы указать некоторые детали:

  • Если ваши входные данные имеют фиксированную длину, используйте метод чтения столбцов, как вы предлагаете в своем коде в операторе ввода.Если нет, используйте запись чтения списка (при условии, что между входными данными есть разделитель).
  • Когда SAS читает в форме списка, он преобразует и сохраняет все цифры числового значения.Поэтому вам не нужно беспокоиться о чтении десятичных чисел.
  • Чтобы отображать числовое значение так, как вам нравится, вы можете использовать оператор форматирования, чтобы назначить представление значения.В этом случае с двумя десятичными знаками мы используем формат «wd».Где w - общая длина числа, которое может встречаться, а d - количество отображаемых десятичных знаков.Следует отметить, что форматы не изменяют значение переменной, а только ее представление.
  • При использовании оператора cards нет необходимости использовать оператор run.

Надеюсь, это будет полезно.

...