Проблема в команде MAKE - PullRequest
       11

Проблема в команде MAKE

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

Я пытаюсь реструктурировать один файл .sav с помощью команды VARSTOCASES, и я получил один синтаксис с сайта IBM, но я не получил ни одного примера для этого, поэтому я попытался с некоторыми переменными, но он не работает, Может кто-нибудь помочь для это

Фактический синтаксис с сайта IBM

VARSTOCASES

/MAKE new variable ["label"] [FROM] varlist [/MAKE ...]

[/INDEX = {new variable ["label"]                                  }]
      {new variable ["label"] (make variable name)             }
      {new variable ["label"] (n) new variable ["label"](n) ...}

[/ID = new variable ["label"]]

[/NULL = {DROP**}]
     {KEEP  }

[/COUNT=new variable ["label"]]

[/KEEP={ALL**  }] [/DROP=varlist] 
   {varlist}

Мой код

GET
FILE='D:\SPSStoCSV\FileFormator\bin\FILES\Argentina\Temp.sav'.
DATASET NAME DataSet1 WINDOW=FRONT.

VARSTOCASES
/MAKE new variable VariableName1 [FROM] varlist [/MAKE  Purchp6m_2 Purchp6m_4]

[/INDEX = {new variable VariableName1                                  }]
      {new variable VariableName1 (make variable name)             }
      {new variable VariableName1 (3) new variable VariableName1(3) ...}

[/ID = new variable VariableName1]
[/NULL = {DROP**}]
         {KEEP  }
[/COUNT=new variable VariableName1]

[/KEEP={ALL**  }] [/DROP=varlist] 
     {varlist}.

SAVE TRANSLATE OUTFILE='C:\Users\10522\Desktop\Temp.csv'
/TYPE=CSV
/ENCODING='UTF8'
/MAP
/REPLACE
/FIELDNAMES
/CELLS=VALUES.

здесь я хочу сохранить все переменные, кроме этих 2 (Purchasep6m_2 Purchasep6m_4), в команде KEEP. Здесь у меня есть около 150 переменных, поэтому вместо того, чтобы сохранять все 148 имен переменных в команде KEEP, я пытаюсь сделать все как ** и DROP команда, но это дает все данные без реструктуризации любой из переменных. Я пытаюсь избежать добавления всех оставшихся переменных в команду KEEP.

1 Ответ

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

Сначала уберите квадратные и фигурные скобки [, ], { и }. Они используются на веб-сайте IBM только для обозначения необязательных аргументов и списков переменных; они не являются частью самого синтаксиса.

Во-вторых, вы не можете использовать пробелы в именах переменных, поэтому new variable должно быть new_variable

В-третьих, вы используете new_variable несколько раз, что неправильно. вам нужно присвоить фактические имена этим переменным.

Ваш код должен выглядеть примерно так: (хотя ни мне, ни, вероятно, вам не очень понятно, зачем вам нужны все необязательные аргументы):

GET
FILE='D:\SPSStoCSV\FileFormator\bin\FILES\Argentina\Temp.sav'.
DATASET NAME DataSet1 WINDOW=FRONT.

VARSTOCASES
/MAKE Purchp6m "Purchp6m" FROM Purchp6m_2 Purchp6m_4
/INDEX = index_variable "Index variable"
/ID = id_variable "Variable ID"
/NULL = KEEP
/COUNT=count_variable "Count VAriable"
/KEEP=ALL.
EXECUTE.

SAVE TRANSLATE OUTFILE='C:\Users\10522\Desktop\Temp.csv'
/TYPE=CSV
/ENCODING='UTF8'
/MAP
/REPLACE
/FIELDNAMES
/CELLS=VALUES.

KEEP=ALL является значением по умолчанию, поэтому вам не нужно указывать его

...