gpt4 book ai didi

r - 在具有不同 nrows 的组内随机抽取 n 个样本

转载 作者:行者123 更新时间:2023-12-01 08:49:05 25 4
gpt4 key购买 nike

如何从每个组的行数不同的组中绘制 n 行?

df <- data.frame(matrix(rnorm(80), nrow=40))
df$color <- rep(c("blue", "red", "yellow", "pink"), each=10)

我试过了,

library(dplyr)
outdat <- df %>%
group_by(color) %>%
sample_n(nrow(.), replace = TRUE)
outdat

但这会返回一个 data.frame,其中 nrow(.) 是来自 df 的 nrows 而不是子集。

This SO post is close ,但定义了特定数量的行绘制。我需要它特定于 dplyr 中的组。

最佳答案

另一种解决方法,使用 sample_frac:

outdat <- df %>%
group_by(color) %>%
sample_frac(1, replace = TRUE)
outdat
# # A tibble: 40 x 3
# # Groups: color [4]
# X1 X2 color
# <dbl> <dbl> <chr>
# 1 0.69256186 0.97180252 blue
# 2 1.54384827 -0.20268802 blue
# 3 -1.20068240 -0.45402013 blue
# 4 2.63407877 -0.31644247 blue
# 5 1.20716737 -0.91380874 blue
# 6 0.01067475 1.02004679 blue
# 7 0.01067475 1.02004679 blue
# 8 1.79732108 -0.04072946 blue
# 9 0.01067475 1.02004679 blue
# 10 1.79732108 -0.04072946 blue
# # ... with 30 more rows

此外,使用 outdat %>% ungroup() 删除分组。

关于r - 在具有不同 nrows 的组内随机抽取 n 个样本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47645205/

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