excel - 确定具有多个 ID 和频率列的数字 ID 的总频率

标签 excel macros spss

对于令人困惑的标题,我深表歉意,我添加了一个示例来澄清。我相信这实际上很容易,但是我一生都无法确定如何去做。本质上,我有很长的 ID 列表及其相应的频率,大约 45 个列表都很长。我想确定每个 ID 的总频率,但问题是每个 ID 不在每个列表中。我尝试将数据导入access,但操作过于复杂,导致访问出错。

如果 If 语句有离散数量的 ID,我将能够在 SPSS 中执行此操作,但总共有大约 10,000 个 ID,需要一种快速执行此操作的方法。

数据看起来像这样,有 50 个 ID 代码列和一个关联的频率列。

ID CODE  Frequency  ID CODE     Frequency 
0001         3        0002          3
0002         4        0003          4
0003         2

预期产出
ID CODE  Frequency  ID CODE     Frequency    Final ID Code  Total Frequency
0001         3        0002          3          0001                 3
0002         4        0003          4          0002                 7
0003         2                                 0003                 6

我认为这可以通过 vlookup 实现,但我不确定如何去做。

对于这个基本问题,我深表歉意,期待任何评论,并将提供任何答案和澄清。

最佳答案

在 SPSS 中计算总频率很容易。将文件读入 SPSS 后,运行以下语法:
(这假设变量名称会以这种方式自动更改:IDCODE Frequency IDCODE_A Frequency_A IDCODE_B Frequency_B etc')

varstocases /make FinalID from IDCODE IDCODE_A IDCODE_B
            /make fr   from Frequency Frequency_A Frequency_B.
dataset name orig.
dataset declare summary.
aggregate /outfile=summary /break=FinalID /TotalFreq=sum(fr).

原始数据现在将以长格式组织,更易于分析。汇总的频率将出现在一个名为“汇总”的新数据集中。

如果文件中有更多数据列,则将所有变量名放入语法中可能会很麻烦。您可以通过在变量 View 窗口中按名称对变量进行排序并从那里复制它们来缩短过程。
但是如果你要重复这个过程并且每次运行可能有不同数量的变量,你应该完全自动化这个过程。你可以这样做:
spssinc select variables macroname="!ID" /properties pattern = "IDCODE*".
spssinc select variables macroname="!FRQ" /properties pattern = "Frequency*".

这些命令会自动定义您现在可以像这样使用的变量列表:
varstocases /make FinalID from !ID
            /make fr from !FRQ.

关于excel - 确定具有多个 ID 和频率列的数字 ID 的总频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48106099/

相关文章:

macros - 如何获取 Nim 中的程序名称?

Python 和 SPSS 为 Logistic 回归提供不同的输出

python - SPSS Python 自定义扩展命令调试

excel - 更改单元格时自动将行复制到新工作表excel VBA

excel - 在包含单词 vba excel 的行之前插入行

excel - 阻止 Excel 自动将某些文本值转换为日期

spss - 如何使用 SPSS 命令执行左外连接?

vba - 使用 selenium 在 vba 中创建后期绑定(bind)方法

c - x 宏打印错误的 offsetof() 信息

macros - 使用 `once-only`宏