3
我對兩個跨越四年的個體重複觀察。我怎樣才能隨機選擇一年中的所有觀察結果?從分組數據中隨機選擇一組觀察值(行)
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
。隨機的年份應該是特定於每個人在不同的時間段有和沒有數據。隨機年份需要與收集到的觀察結果一致,因此在個體之間會有所不同。
我沒有想過在'dplyr'之外工作。我已經爲這個問題和數據集增加了具體內容,特別是在某些年份增加了「NA」。我需要每個人的隨機年份不同。光滑的 –
。也可以將第2行更改爲'過濾器(年份== sample(年份[!is.na(Value)],1))',用'NA'過濾掉年份。 –
哦,是的。好點,因爲我正在採樣具有不均勻樣本大小的向量,所以概率將不相等。這個例子沒什麼問題,但非常感謝評論。 –