是否有一个R函数根据组选择n个个体?

是否有一个R函数根据组选择n个个体?,r,R,我有一个1250万条记录的数据集,我需要随机选择大约250万条。然而,这些人分为55284组,我想保持组的完整性 所以基本上我想删除组,直到我有250万条记录,或者选择组,直到我有大约250万个人 如果这是我的数据: data <- data.frame( id = c(1, 2, 3, 4, 5), group = (1, 1, 2, 2, 3) ) 数据太长,无法回复评论。你需要这样的东西吗 #Order data by group so rows with same

我有一个1250万条记录的数据集,我需要随机选择大约250万条。然而,这些人分为55284组,我想保持组的完整性

所以基本上我想删除组,直到我有250万条记录,或者选择组,直到我有大约250万个人

如果这是我的数据:

data <- data.frame(
    id = c(1, 2, 3, 4, 5),
    group = (1, 1, 2, 2, 3)
)

数据太长,无法回复评论。你需要这样的东西吗

#Order data by group so rows with same groups are together 
data1 <- data[order(data$group), ]
#Get all the groups in first 2.5M entries
selected_group <- unique(data1$group[1:2500000])

#Subset those groups so you have all groups intact
final_data <- data1[data1$group %in% selected_group, ]

评论太长,无法回答。你需要这样的东西吗

#Order data by group so rows with same groups are together 
data1 <- data[order(data$group), ]
#Get all the groups in first 2.5M entries
selected_group <- unique(data1$group[1:2500000])

#Subset those groups so you have all groups intact
final_data <- data1[data1$group %in% selected_group, ]

这是一种可能性。我使用toydata和33万(而不是250万)的阈值来演示它。首先,我创建玩具组向量:

threshold <- 33
set.seed(111)
mygroups <- rep(1:10, rpois(10, 10))

这是一种可能性。我使用toydata和33万(而不是250万)的阈值来演示它。首先,我创建玩具组向量:

threshold <- 33
set.seed(111)
mygroups <- rep(1:10, rpois(10, 10))

分层抽样。分层抽样。谢谢!是的,这会起作用,但是,这不会真的随机选择组,因为您只是选择第一个组。谢谢!是的,这是可行的,但是,这并不是随机选择组,因为你只是选择第一个组。