【发布时间】:2018-03-28 11:40:42
【问题描述】:
我对两个人进行了四年的重复观察。如何随机选择一年中的所有观测值?
set.seed(123)
dat <- data.frame(IndID = rep(c("AAA", "BBB"), each = 100),
Year = sample(c("2001", "2002", "2003", "2005"),200, replace = T),
Value = rnorm(200))
dat$Value[dat$IndID == "AAA" & dat$Year == "2002"] <- NA
dat$Value[dat$IndID == "BBB" & dat$Year == "2005"] <- NA
请注意,各个年份组合之间的样本量不同。
table(dat$IndID, dat$Year)
2001 2002 2003 2005
AAA 26 27 20 27
BBB 20 30 30 20
另请注意,并非所有年份都有数据。
dat %>% group_by(IndID, Year) %>%
summarise(NoDat = sum(is.na(Value))) %>%
as.data.frame()
IndID Year NoDat
1 AAA 2001 0
2 AAA 2002 27
3 AAA 2003 0
4 AAA 2005 0
5 BBB 2001 0
6 BBB 2002 0
7 BBB 2003 0
8 BBB 2005 20
我已经看到了许多有用的示例,用于在组中选择特定行(即顶部、最后、n 随机等),但我并没有将关于如何选择组中所有行的点联系起来。在这里,我想要每个人随机选择的年份的所有数据,最好是dplyr。给定不同时期的有数据和无数据,随机年份应特定于每个人。随机年份必须是收集了观察结果的年份,这因人而异。
【问题讨论】: