如何用语法将Dyadic母婴长数据中婴儿体重填充至对应母亲行
母婴配对重复测量数据infant weight字段填充实现方案
以下代码实现逻辑与你之前的GUI操作逻辑完全一致:先提取婴儿样本的体重匹配对照表,再删除原数据空的体重字段后按匹配键合并填充。
R(tidyverse 实现)
# 加载依赖包 library(tidyverse) # 1. 提取婴儿体重匹配表:仅保留匹配键和体重字段 infant_weight_ref <- df %>% filter(status == 1) %>% select(Dyad_ID, date, infant_weight) # 2. 删除原数据的空体重字段,按匹配键合并填充 df_filled <- df %>% select(-infant_weight) %>% left_join(infant_weight_ref, by = c("Dyad_ID", "date"))
Python(pandas 实现)
import pandas as pd # 1. 提取婴儿体重匹配表 infant_weight_ref = df[df['status'] == 1][['Dyad_ID', 'date', 'infant_weight']] # 2. 合并填充到原数据集 df_filled = df.drop('infant_weight', axis=1).merge(infant_weight_ref, on=['Dyad_ID', 'date'], how='left')
Stata 实现
* 1. 提取婴儿体重匹配表并保存临时文件 keep if status == 1 keep Dyad_ID date infant_weight save "infant_weight_ref.dta", replace * 2. 打开原数据集,删除空体重字段后合并 use "original_data.dta", clear drop infant_weight merge m:1 Dyad_ID date using "infant_weight_ref.dta", nogen keep(match master)
注意事项
- 请提前检查
Dyad_ID和date两个匹配键的格式在母婴行中完全一致,避免因格式差异导致匹配失败 - 如果存在同一Dyad同一日期下多条婴儿记录的情况,需要先提前按研究规则去重后再做匹配
内容的提问来源于stack exchange,提问作者Emma
相关产品推荐
相关产品推荐

