我已将其简化为我正在尝试做的示例。我有3个不同的变量,值的范围从1到5:
我需要计算一个新变量,该变量对所有情况和所有3个变量中每个值的出现进行计数。目的是能够显示每个值出现多少次(例如,出现5次3次),并且有人告诉我可以使用Compute变量方法来实现,但是我还无法弄清楚该怎么做。
示例.sav文件,如果有帮助,可以找到here。预先感谢您的回答!
我无法从这台计算机访问您的.sav文件,但这是我为您的示例数据提供的解决方案:
*Dataset1 should equal your original dataset name.
DATASET ACTIVATE Dataset1.
*This creates a table with the counts of each occurance of 1 through 5.
FREQUENCIES VARS MENTION1 MENTION2 MENTION3.
EXECUTE.
*This translates the frequencies table to a dataset called 'freqtbl'.
DATASET DECLARE freqtbl.
OMS Select Tables
/IF SUBTYPES =['Frequencies']
/DESTINATION format = sav outfile=freqtbl.
freq vars= MENTION1 MENTION2 MENTION3.
OMSEND.
*This will make sure you are referencing the new dataset you created: 'freqtbl'.
*The ALTER TYPE statement turns VAR2, which is the occurances of 1 through 5, back into a numeric variable.
DATASET ACTIVATE freqtbl.
ALTER TYPE VAR2 (F1.0).
*This is a simple if/then statement across all of your values.
IF VAR2 = 1 FREQ_1 = SUM(FREQUENCY).
IF VAR2 = 2 FREQ_2 = SUM(FREQUENCY).
IF VAR2 = 3 FREQ_3 = SUM(FREQUENCY).
IF VAR2 = 4 FREQ_4 = SUM(FREQUENCY).
IF VAR2 = 5 FREQ_5 = SUM(FREQUENCY).
EXECUTE.
*This cleans up your dataset and computes a dummy variable to aggregate counts.
DELETE VARIABLES COMMAND_ TO CumulativePercent.
COMPUTE DUMMY = 1.
EXECUTE.
*This aggregates your frequency columns to count all occurances of 1 through 5.
AGGREGATE
/OUTFILE = *
MODE = ADDVARIABLES
/BREAK DUMMY
/COUNT_1 = SUM(FREQ_1)
/COUNT_2 = SUM(FREQ_2)
/COUNT_3 = SUM(FREQ_3)
/COUNT_4 = SUM(FREQ_4)
/COUNT_5 = SUM(FREQ_5).
EXECUTE.