gpt4 book ai didi

具有 "at least one from each"条件的行的随机样本

转载 作者:行者123 更新时间:2023-12-04 09:47:58 25 4
gpt4 key购买 nike

所以我有一个看起来像这样的数据集:

a   b   c
23 34 Falcons
14 9 Hawks
2 18 Eagles
3 21 Eagles
22 8 Falcons
11 4 Hawks

我知道我可以做一个随机的行子集 with a nested conditional ,但我想要做的是创建一个随机子集,它需要 'c' 列中每个可用值中的至少一个 .

所以可能的正确子集是
23  34  Falcons
14 9 Hawks
3 21 Eagles

或者
11  4   Hawks
2 18 Eagles
22 8 Falcons

[无特定顺序],但类似于:
14  9   Hawks
2 18 Eagles
3 21 Eagles

不起作用,因为没有代表“猎鹰”。在 R 中有没有一种简单的方法可以做到这一点?

最佳答案

使用 group_bysample_n dplyr 中的函数包裹。

text1 <- "a   b   c
23 34 Falcons
14 9 Hawks
2 18 Eagles
3 21 Eagles
22 8 Falcons
11 4 Hawks"

dat <- read.table(text=text1, head=T, as.is=T)

library(dplyr)
dat %>% group_by(c) %>% sample_n(1)

# Source: local data frame [3 x 3]
# Groups: c [3]

# a b c
# (int) (int) (chr)
# 1 3 21 Eagles
# 2 22 8 Falcons
# 3 11 4 Hawks

更新:您可以编写一个函数来进行采样。
sample_df <- function(df) {
df.r <- sample(1:nrow(df), 1)
return(sample_n(df, df.r))
}
dat %>% group_by(c) %>% do(sample_df(.))

关于具有 "at least one from each"条件的行的随机样本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35857290/

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