使用下面的代码,我尝试使用 marital 列的基线值并将每个 id 的值向前推进。除了代码的最后一块无法继承基线值之外,以下步骤均有效。
baseline_values <- tapply(female_98_2020$year, female_98_2020$hhidpn, min)
female_98_2020$marital_base <- ifelse(female_98_2020$year == baseline_values[as.character(female_98_2020$hhidpn)], female_98_2020$marital, NA)
library(zoo)
female_98_2020 <- female_98_2020 %>%
group_by(hhidpn) %>%
mutate(marital_base = zoo::na.locf(marital_base, na.rm = FALSE)) %>%
ungroup()
我发现 na.rm 必须是 TRUE:
library(zoo)
female_98_2020 <- female_98_2020 %>%
group_by(hhidpn) %>%
mutate(marital_base = zoo::na.locf(marital_base, na.rm = TRUE)) %>%
ungroup()