[英]When using repeated measures within IDs in R, how do I create a variable for a value from the observation before?
我有 3 名女性的數據,每個女性在 3 次觀察(月經周期)中重復測量。 有很多缺失的數據。
我想看看這個周期的孕酮和上一個周期的 hb(血紅蛋白)之間的關系。
我的數據目前如下所示:
data = data.frame(id = c(1,1,1,2,2,2,3,3,3),
progesterone = c(150, 140, 130, 145, 130, NA, 150, 150, NA),
hb_this_cycle = c(9, 8, 9, NA, 9, 10, 9, 8, 7))
# id progesterone hb
# 1 1 150 9
# 2 1 140 8
# 3 1 130 9
# 4 2 NA NA
# 5 2 130 9
# 6 2 NA 10
# 7 3 150 9
# 8 3 150 8
# 9 3 NA 7
我想添加一個代表之前循環中的 hb(血紅蛋白)的變量。 但是,我想在 ID 中執行此操作。 我還需要它能夠處理大量的 NA。
因此,我希望數據在理想情況下看起來像這樣:
data_ideal = data.frame(id = c(1,1,1,2,2,2,3,3,3),
progesterone = c(150, 140, 130, 145, 130, NA, 150, 150, NA),
hb_this_cycle = c(9, 8, 9, NA, 9, 10, 9, 8, 7),
hb_last_cycle = c(NA, 9, 8, NA, NA, 9, NA, 9, 8))
# id progesterone hb_this_cycle hb_last_cycle
# 1 1 150 9 NA
# 2 1 140 8 9
# 3 1 130 9 8
# 4 2 145 NA NA
# 5 2 130 9 NA
# 6 2 NA 10 9
# 7 3 150 9 NA
# 8 3 150 8 9
# 9 3 NA 7 8
任何幫助將不勝感激。 謝謝。
你可以像下面那樣做。 請注意,您的預期 output 可能有錯誤,因為第三組收到第二組的最后一個值,這可能不是您想要的?
data_ideal %>% group_by(id) %>% mutate(new = lag(hb_this_cycle))
# A tibble: 9 x 5
# Groups: id [3]
id progesterone hb_this_cycle hb_last_cycle new
<dbl> <dbl> <dbl> <dbl> <dbl>
1 1 150 9 NA NA
2 1 140 8 9 9
3 1 130 9 8 8
4 2 145 NA NA NA
5 2 130 9 NA NA
6 3 NA 10 9 NA
7 3 150 9 NA 10
8 3 150 8 9 9
9 3 NA 7 8 8
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.