SAS Proc Import "Table": является ли аргумент "Table" обязательным аргументом? - PullRequest
0 голосов
/ 11 ноября 2018

Мне нужно собрать слайд-колоду на PROC IMPORT для школьного проекта. В документации SAS (http://support.sas.com/documentation/cdl/en/proc/65145/HTML/default/viewer.htm#n18jyszn33umngn14czw2qfw7thc.htm) сказано, что есть три обязательных аргумента:

  1. Datafile =
  2. Out =
  3. Таблица =

Далее говорится, что СУБД является необязательной.

В моей слайд-колоде я пытаюсь использовать пример с аргументом TABLE =. Тем не менее, я получаю сообщение об ошибке из-за того, что я не могу иметь операторы FILE = и TABLE = вместе. Фактически, возвращаясь к другому коду для импорта данных для выполнения домашней работы, я заметил, что ни один из кодов не использует аргумент TABLE =. Вместо этого всегда есть оператор СУБД =. Например:

proc import
datafile = "C:\Users\ccedie1\Downloads\survey1.csv"
out = Survey
DBMS=csv;
run;
proc print data=Survey;
run;

Насколько я понимаю, существует много версий SAS и что для интерфейса под названием SAS / ACCESS требуется отдельная лицензия. Я подозреваю, что школьные компьютеры имеют эту дополнительную лицензию / функциональность, потому что для нее не требуется оператор TABLE =. Фактически, я могу заставить этот код работать даже без оператора СУБД.

Пожалуйста, дайте мне знать, какие концепции я здесь упускаю. Я явно хочу, чтобы моя колода была точной. Если я не могу создать пример, использующий оператор TABLE =, мне нужно объяснить, почему я не могу это сделать. Например, я хотел бы сказать что-то вроде: «Хотя в документации SAS указан TABLE = в качестве обязательного аргумента, он не требуется при использовании SAS 9.4 в кампусе, поскольку _____________.»

Я понимаю, что, возможно, я не сделал лучшую работу, объясняя проблему / проблему, поэтому мои извинения за это.

Заранее спасибо за любую помощь.

Ответы [ 2 ]

0 голосов
/ 11 ноября 2018

Вертикальная полоса в этой строке страницы, на которую вы ссылаетесь

DATAFILE="filename" | TABLE="tablename"

обычно означает or. В основном они используют форму Бэкуса-Наура .

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

Таким образом, при чтении из формата, который хранится в физическом файле, вы должны указать datafile=, но при чтении из удаленной базы данных вы должны указать опцию table=.

Обратите внимание, что вы ссылались на более старую документацию по SAS версии 9.3 вместо текущей документации.

0 голосов
/ 11 ноября 2018

Документация неверна.Следует сказать что-то вроде «Требуется таблица или файл данных».

Мастер импорта в SAS 9.4 генерирует этот код:

PROC IMPORT OUT= WORK.test 
            DATAFILE= "C:\Users\User\Desktop\Testing.csv" 
            DBMS=CSV REPLACE;
     GETNAMES=YES;
     DATAROW=2; 
RUN;

Нет оператора таблицы.

Удачи в вашем классе.

...