MAKE命令中的问题

时间:2018-09-05 12:08:45

标签: spss

我正在尝试使用VARSTOCASES命令重构一个.sav文件,并且从IBM网站获得了一种语法,但是我没有得到任何相同的示例,因此我尝试了一些变量,但是它不起作用,任何人都可以帮忙这个

IBM Site的实际语法

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.

在这里我想在KEEP命令中保留除这些2(Purchp6m_2 Purchp6m_4)以外的所有变量,这里我有150个变量,所以我想像All **和DROP一样在KEEP命令中保留所有148个变量名命令,但这将在不重组任何变量的情况下提供所有数据。我试图避免在KEEP命令中添加所有剩余的变量。

1 个答案:

答案 0 :(得分:2)

首先,删除方括号和大括号[]{}。它们仅在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是默认设置,因此您实际上不需要指定它