簡體   English   中英

隨機選擇R中的組(以及每個組中的所有案例)。

[英]Randomly select groups (and all cases per group) in R?

我有一個R數據框,具有兩個數據級別: idyear 在由id定義的組中,年份增加(整個數據集每個組具有相同的(數量)年,如下所示:

id    year    var1    var2
11A   2001    ...     ...
11A   2002    ...     ...
11A   2003    ...     ...
11A   2004    ...     ...
13B   2001    ...     ...
13B   2002    ...     ...
13B   2003    ...     ...
13B   2004    ...     ...
22Z   2001    ...     ...

我的數據中有大約20.000個組,因為它們太多了,無法繪制出良好的增長曲線圖。 如何隨機選擇約20個ID? (因此:還要選擇對應於該ID的所有4行年份嗎?)

如果先使用sample再進行索引,這將非常簡單。 這是一個偽造的示例,看起來與您所呈現的相似。 它實際上僅是兩行代碼,如果您願意的話,可以合而為一。

dat <- data.frame(id=paste0(LETTERS[1:8], rep(1:1250, 8)), 
   year=as.factor(as.character(sample(c(1990:2012, 20000, T)))), 
   var1=rnorm(20000), var2=rnorm(20000))

#a look at the data
head(dat)

#sample 20 id's randomly
(ids <- sample(unique(dat$id), 20))

#narrow your data set
dat2 <- dat[dat$id %in% ids, ]
subset(df, id %in% sample(levels(df$id), 20))

假設您的數據幀稱為df ,並且您的id是一個因素(如果不是,則使用unique而不是levels

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM