在 SPSS 中合并个案和添加变量

Combining Cases and Adding Variables in SPSS

我很难在 SPSS 中实现这个功能。数据集格式如下(为 excel 格式道歉)

在此示例中,AGGREGATE 函数用于通过同一变量合并案例。换句话说,本例中的 CITY,Tampa,是中断变量。

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

我当前的语法是:

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

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

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

如果我没理解错的话,您是在尝试将所有 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.

中使用它