gpt4 book ai didi

r - 每个条目选择 20 个第一行

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

我有一个具有这种结构的大型数据集(数百万条记录):

id | ident1  |  ident2  
1 A000001 B000001
2 A000001 B000002
................

99 A000001 B000099
.........
337 A000002 B000037
338 A000002 B000043

换句话说,对于每个 [ident1],我在 [ident2] 中都有大量条目。我希望只能选择这些条目中的 20 个(如果少于 20 个,则全部选择)。

顺序并不重要:所以如果给定的 ident1 有 100 个匹配的 [ident2],我想要前 20 个条目或 20 个随机条目,这并不重要。

提前致谢,p。

最佳答案

尝试

library(dplyr)
df %>%
group_by(ident1) %>%
slice(1:20)

或者使用data.table

library(data.table)
setDT(df)[, head(.SD,20), by=ident1]

如果你需要 sample

setDT(df)[df[, .I[sample(.N,20, replace=FALSE)], by=ident1]$V1]

如果某些组的20 行要采样

setDT(df)[,if(.N < 20) .SD else .SD[sample(.N,20, replace=FALSE)], by=group]

关于r - 每个条目选择 20 个第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27292370/

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