我在SPSS中难以实现此功能。数据集的格式如下(excel格式的道歉)
在此示例中,AGGREGATE函数用于通过相同的变量组合案例。换句话说,示例中的CITY,Tampa是break变量。
不幸的是,Tampa的每个条目每天都有10个独特的温度。所以坦帕的第一个条目是0-10天,第二个条目是10-20天,它们提供了有用的信息。我无法弄清楚如何使用聚合函数创建新变量以避免失去这些天。我想这样做,因为我希望能够在0-20天内对坦帕的平均温度进行测试,相对于其他城市的0-20天。
我目前的语法是:
AGGREGATE
/OUTFILE=* MODE=ADDVARIABLES
/BREAK=CITY
/Temp=Max(Temp).
但是这并没有创建变量,我不确定从哪里开始。我检查了SPSS手册,并没有将此视为聚合中的一个选项,对于什么功能可能允许此功能的任何想法?
答案 0 :(得分: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
需要一个索引变量(例如city中的行数)。在您的示例中,您的数据没有索引,因此以下命令将创建一个:
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
中使用它。
答案 1 :(得分:0)
运行EXECUTE或Transform&gt;运行Pending Transformations以查看AGGREGATE命令的结果。