gpt4 book ai didi

r - 选择与 dplyr 中随机选择的条件匹配的所有行

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

我正在尝试选择属于随机选定人群的重复测量数据集中的所有行。我试图完全在 tidyverse 中完成它(为了我自己的启发),但我发现自己不得不求助于基本 R 函数。以下是我结合使用基本 R 和 dplyr 命令的方法。

set.seed(145)
df <- data.frame(id = rep(letters[1:10], each = 4),
score = rnorm(40))
ids <- sample(unique(df$id), 3)
smallDF <- df %>% dplyr::filter(id %in% ids)
smallDF

# id score
# 1 a 0.6869129
# 2 a 1.0663631
# 3 a 0.5367006
# 4 a 1.9060287
# 5 c 1.1677516
# 6 c 0.7926794
# 7 c -1.2135038
# 8 c -1.0056141
# 9 d 0.2085696
# 10 d 0.4461776
# 11 d -0.6208060
# 12 d 0.4413429

我可以使用 dplyrid 标识符中随机抽样...

df %>% distinct(id) %>% sample_n(3)

# id
# 1 e
# 2 c
# 3 b

...但是输出是数据帧/tibble 的事实让我很难进入下一步,然后我通过随机选择的 id 标识符过滤原始 df

有人可以帮忙吗?

最佳答案

您可以对原始 df 执行 left_join 以获得随机选择的 id 的所有行

library(dplyr)
set.seed(123)
df %>% distinct(id) %>% sample_n(3) %>% left_join(df)

#Joining, by = "id"
# id score
#1 b 1.063
#2 b 1.370
#3 b 0.528
#4 b 0.403
#5 f 0.343
#6 f -1.286
#7 f -0.534
#8 f 0.597
#9 c 1.168
#10 c 0.793
#11 c -1.214
#12 c -1.006

关于r - 选择与 dplyr 中随机选择的条件匹配的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59366974/

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