gpt4 book ai didi

r - 如何随机拆分 R 中的数据帧?

转载 作者:行者123 更新时间:2023-12-01 00:42:28 25 4
gpt4 key购买 nike

我有一个带有ca的数据框。 1000 行,我想将它随机分成 8 个较小的数据帧,每个数据帧包含 100 个元素。我尝试使用 sample在数据框上运行 8 次,但有时它选择相同的行。

最佳答案

我们通过 sample 创建一个分组变量使用 size 处理 1 到 8作为数据集的行数,split list 中具有分组变量的行序列,循环遍历 list ( lapply(... ),对数据集进行子集化并使用 head 获取前 100 行

lst <- lapply(split(1:nrow(df1), sample(1:8, nrow(df1), replace=TRUE, prob = rep(1/8, 8))),
function(i) head(df1[i,],100))
sapply(lst, nrow)
# 1 2 3 4 5 6 7 8
#100 100 100 100 100 100 100 100

正如@RHertel 在评论中提到的,我们可以做第二个 sample得到 100 行
lst <- lapply(split(1:nrow(df1), sample(1:8, nrow(df1), replace=TRUE, prob = rep(1/8, 8))),
function(i) df1[sample(i, 100, replace=FALSE),])

数据
set.seed(24)
df1 <- data.frame(V1= 1:1000, V2= rnorm(1000))

关于r - 如何随机拆分 R 中的数据帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36663108/

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