gpt4 book ai didi

r - 使用dplyr从数据框中采样子组的行

转载 作者:行者123 更新时间:2023-12-03 09:15:30 25 4
gpt4 key购买 nike

如果我想从不同的组中随机选择一些样本,请使用plyr软件包和以下代码

require(plyr)
sampleGroup<-function(df,size) {
df[sample(nrow(df),size=size),]
}

iris.sample<-ddply(iris,.(Species),function(df) sampleGroup(df,10))

这里从每个物种中选择10个样本。

我的某些数据框非常大,我的问题是我可以将相同的sampleGroup函数与dplyr包一起使用吗?还是有另一种方法可以在dplyr中执行相同的操作?

编辑

dplyr软件包的0.2版引入了两个新函数,用于从表sample_n和sample_frac中选择随机行

最佳答案

是的,您可以通过do()函数优雅地使用dplyr。
这是一个例子:

mtcars %>% 
group_by(cyl) %>%
do(sample_n(.,2))

结果是这样的
Source: local data frame [6 x 11]
Groups: cyl

mpg cyl disp hp drat wt qsec vs am gear carb
1 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
2 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2
3 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
4 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4
5 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
6 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8

更新:

较新版本的dplyr中的 do不再需要 sample_n函数。当前代码,每组随机抽取两行:
mtcars %>% 
group_by(cyl) %>%
sample_n(2)

关于r - 使用dplyr从数据框中采样子组的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21255366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com