【问题标题】:Dividing the values by their mean for many variables将许多变量的值除以它们的平均值
【发布时间】:2019-01-28 14:18:13
【问题描述】:

我希望通过将变量中的每个案例除以该变量的平均值来进行数据转换。我的数据集中有 91 个变量。我使用 AGGREGATE 函数创建方法:

  AGGREGATE
  /OUTFILE=* MODE = ADDVARIABLES
  /BREAK=
  /mean_1 to mean_91= MEAN(Var1 TO Var91).

此代码为我提供了同一数据集中每个变量的平均值,但为了将每个案例除以其平均值,我创建了一个新数据集,其中包含一个可以重复自身的命令。问题是从 mean_1 变为 mean_2 ...... mean_91。

COMPUTE CMD = CONCAT("COMPUTE",RTRIM(Name),".Norm =",RTRIM(Name),"/mean",1,".").

如何确保在下一行中,数字 1 将变为 2,然后变为 3,依此类推?

【问题讨论】:

    标签: transform spss data-transform


    【解决方案1】:

    有一种更简单的方法可以完成您的任务。在像你一样计算平均值之后,你可以像这样遍历所有变量:

    do repeat vr=var1 to var91 /mn=mean_1 to mean_91 /nrm=norm1 to norm91.
       compute nrm=vr/mn.
    end repeat.
    

    【讨论】:

    • 不要忘记最后的EXECUTE. :)
    • 嗯,这是一个问题 - 在 SO 中回答问题时,我有几个案例,OP 认为我的代码不起作用,因为我没有包含 exe. 而他们没有知道他们需要进行转型。但另一方面,在每个命令后加上exe. 并不是一个好习惯,我不想助长 SPSS 初学者的坏习惯。所以我所做的是 not 将其包含在语法中,如果 OP 自己没有弄清楚,我会解释(或将它们发送到 this one 之类的解释)
    猜你喜欢
    • 2018-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    • 2022-01-13
    • 2021-10-09
    • 2017-06-13
    相关资源
    最近更新 更多