将伙伴(婴儿)变量的值复制到原始(母亲)
Copy value of partnered (infant) variable to original (mother)
我有 Dyadic (mother/infant) 长格式重复测量数据。
我有三个 ID 变量:Individual ID、Dyad ID 和“status”。
ID
DYAD
Status
date
infant weight
001
01
0
01/01
101
01
1
01/01
10
001
01
0
02/02
101
01
1
02/02
20
002
02
0
01/01
102
02
1
01/01
11
002
02
0
02/02
102
02
1
02/02
21
我想根据关键变量将婴儿体重添加到母亲的行中:日期和 DYAD ID。所以最终结果应该是这样的:
ID
DYAD
Status
date
infant weight
001
01
0
01/01
10
101
01
1
01/01
10
通常,我完全通过 GUI 创建一个新的迷你数据集,方法是 1) 仅选择婴儿(状态 ==1)和 2) 仅使用关键变量和感兴趣的变量,从原始数据中删除婴儿体重并合并数据集:根据键值添加变量。
这很好用,但我知道一定有办法用语法来做到这一点。
您可以通过聚合来做到这一点:
aggregate /outfile=* mode=addvariables overwritevars=yes
/break=DYAD date /infant_weight=max(infant_weight).
因为在组合了 DYAD 和 Date 的任何一对行中,都会有一行的值在 infant_weight 中,另一行为空,聚合将用该对的最大值填充空白行- 这只是婴儿行的重量。
我有 Dyadic (mother/infant) 长格式重复测量数据。
我有三个 ID 变量:Individual ID、Dyad ID 和“status”。
ID | DYAD | Status | date | infant weight |
---|---|---|---|---|
001 | 01 | 0 | 01/01 | |
101 | 01 | 1 | 01/01 | 10 |
001 | 01 | 0 | 02/02 | |
101 | 01 | 1 | 02/02 | 20 |
002 | 02 | 0 | 01/01 | |
102 | 02 | 1 | 01/01 | 11 |
002 | 02 | 0 | 02/02 | |
102 | 02 | 1 | 02/02 | 21 |
我想根据关键变量将婴儿体重添加到母亲的行中:日期和 DYAD ID。所以最终结果应该是这样的:
ID | DYAD | Status | date | infant weight |
---|---|---|---|---|
001 | 01 | 0 | 01/01 | 10 |
101 | 01 | 1 | 01/01 | 10 |
通常,我完全通过 GUI 创建一个新的迷你数据集,方法是 1) 仅选择婴儿(状态 ==1)和 2) 仅使用关键变量和感兴趣的变量,从原始数据中删除婴儿体重并合并数据集:根据键值添加变量。
这很好用,但我知道一定有办法用语法来做到这一点。
您可以通过聚合来做到这一点:
aggregate /outfile=* mode=addvariables overwritevars=yes
/break=DYAD date /infant_weight=max(infant_weight).
因为在组合了 DYAD 和 Date 的任何一对行中,都会有一行的值在 infant_weight 中,另一行为空,聚合将用该对的最大值填充空白行- 这只是婴儿行的重量。