按组随机抽样 [英] Take random sample by group
本文介绍了按组随机抽样的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个由近50,000行组成的数据框,分布在15个不同的ID中(每个ID有数千个观测值)。数据框如下所示:
ID Year Temp ph
1 P1 1996 11.3 6.80
2 P1 1996 9.7 6.90
3 P1 1997 9.8 7.10
...
2000 P2 1997 10.5 6.90
2001 P2 1997 9.9 7.00
2002 P2 1997 10.0 6.93
我想为每个ID随机抽取500行(因此P1为500行,P2为500行,.)并创建新的DF。我尝试:
new_df<-df[df$ID %in% sample(unique(dfID),500),]
但它随机取一个ID,而每个ID需要500个随机行。
推荐答案
尝试此操作:
library(plyr)
ddply(df,.(ID),function(x) x[sample(nrow(x),500),])
这篇关于按组随机抽样的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文