【问题标题】:Issue in MAKE commandMAKE 命令中的问题
【发布时间】:2018-09-05 12:08:45
【问题描述】:

我正在尝试使用 VARSTOCASES 命令重构一个 .sav 文件,我从 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.

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

【问题讨论】:

    标签: spss


    【解决方案1】:

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

    【讨论】:

    • 这里我不想保留所有变量我需要保留除这两个(Purchp6m_2 和 Purchp6m_4)之外的所有变量,所以不要在 KEEP 中键入所有剩余变量,如果有的话让它变得简单的方法
    • 'drop=all' 而不是 keep 子命令应该删除所有其他变量
    • 我不想删除所有变量,我只需要删除 MAKE 中包含的这两个(Purchp6m_2 Purchp6m_4)。
    • 该命令正在从这两个变量中创建一个新变量,因此它们不会存在于重组数据中 - 不需要dropkeep
    • DROPKEEP 子命令引用其他变量,不涉及任何MAKE 子命令。 Purchp6m_2Purchp6m_4 不会包含在输出中,因为它们被重组为 Purchp6m
    猜你喜欢
    • 2011-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-19
    • 2015-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多