【问题标题】:Combining Cases and Adding Variables in SPSS在SPSS中合并案例并添加变量
【发布时间】:2017-01-22 01:51:18
【问题描述】:

我很难在 SPSS 中实现此功能。数据集的格式是这样的(对excel格式表示歉意)

在此示例中,AGGREGATE 函数用于通过相同的变量组合案例。换句话说,示例中的坦帕市是中断变量。

不幸的是,坦帕的每个条目每天都会给出 10 个不同的温度。所以坦帕的第一个条目是第 0-10 天,第二个是第 10-20 天,它们提供了有用的信息。这些天我不知道如何使用聚合函数来创建新变量以避免丢失。我想这样做,因为我希望能够对坦帕 0-20 天的平均温度进行测试,相对于其他城市的 0-20 天。

我目前的语法是:

AGGREGATE
  /OUTFILE=* MODE=ADDVARIABLES
  /BREAK=CITY
  /Temp=Max(Temp).

但这不会创建变量,我不确定从哪里开始。我检查了 SPSS 手册,并没有将其视为聚合中的一个选项,关于什么功能可能允许此功能的任何想法?

【问题讨论】:

    标签: aggregate spss


    【解决方案1】:

    如果我理解正确,您正在尝试将所有 CITY 信息重新组织到一行中,而不是汇总它。所以你要找的是重组命令casestovars

    首先我们将创建一些假数据来演示:

    data list list/City (a10) temp1 to temp10 (10f6).
    begin data
    Tampa 10 11 12 13 14 15 16 17 18 19  
    Boston 20 21 22 23 24 25 26 27 28 29
    Tampa 30 31 32 33 34 35 36 37 38 39 
    NY 40 41 42 43 44 45 46 47 48 49 
    Boston 50 51 52 53 54 55 56 57 58 59 
    End data.
    

    casestovars 需要一个索引变量(例如城市内的行数)。在您的示例中,您的数据没有索引,因此以下命令将创建一个:

    sort cases by CITY.
    if $casenum=1 or city<>lag(city) IndVar=1.
    if city=lag(city) IndVar=lag(IndVar)+1.
    format IndVar(f2).
    

    现在我们可以重组了:

    sort cases by CITY IndVar.
    casestovars /id=CITY /index=IndVar/separator="_"/groupby=index.
    

    如果每个城市有更多行,这也将起作用。

    重要提示:我的人工索引 (IndVar) 不一定反映文件中行的原始顺序。如果您的文件确实不包含索引并且没有排序,因此第一行代表第一个测量值等,则重组后的文件也不会被排序:较早的测量值可能出现在左侧或右侧后来的 - 根据他们在原始文件中的顺序。为避免这种情况,您应该尝试定义一个真正的索引并在casestovars 中使用它。

    【讨论】:

    • 这很完美,再次感谢您的帮助。它非常有帮助,感谢您花时间解读我公认的难以理解的帖子。祝你有美好的一天!干杯!
    【解决方案2】:

    运行 EXECUTE 或 Transform > 运行 Pending Transformations 以查看 AGGREGATE 命令的结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-22
      • 1970-01-01
      相关资源
      最近更新 更多