我正在尝试使用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命令中添加所有剩余的变量。
答案 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
是默认设置,因此您实际上不需要指定它