gpt4 book ai didi

R - 通过随机选择组成的数据帧来创建新的数据帧

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

我是 R-beginner,我有一个小问题。我想通过随机选择组成的数据帧来创建新的数据帧。

我有 4 个(类别),每个分为 10 个数据框,我想创建 10 个新数据框,每个类别包含 1 个数据框。

例如,这些是我的数据框:

Cat_1_Data_1 Cat_2_Data_1 Cat_3_Data_1 Cat_4_Data_1
Cat_1_Data_2 Cat_2_Data_2 Cat_3_Data_2 Cat_4_Data_2
Cat_1_Data_3 Cat_2_Data_3 Cat_3_Data_3 Cat_4_Data_3
Cat_1_Data_4 Cat_2_Data_4 Cat_3_Data_4 Cat_4_Data_4
Cat_1_Data_5 Cat_2_Data_5 Cat_3_Data_5 Cat_4_Data_5
Cat_1_Data_6 Cat_2_Data_6 Cat_3_Data_6 Cat_4_Data_6
Cat_1_Data_7 Cat_2_Data_7 Cat_3_Data_7 Cat_4_Data_7
Cat_1_Data_8 Cat_2_Data_8 Cat_3_Data_8 Cat_4_Data_8
Cat_1_Data_9 Cat_2_Data_9 Cat_3_Data_9 Cat_4_Data_9
Cat_1_Data_10 Cat_2_Data_10 Cat_3_Data_10 Cat_4_Data_10

创建新数据框(我就是这样做的):

new_data_1 <- rbind(cat_1_data_1,cat_2_data_1,cat_3_data_1,cat_4_data_1)
...
new_data_10 <- rbind(cat_1_data_10,cat_2_data_10,cat_3_data_10,cat_4_data_10)

但我想要随机选择数据集,例如:

new_data_1 <- rbind(cat_1_data_[Random 1-10],cat_2_data_[Random 1-10]... and so on)
...
new_data_10 <- rbind(cat_1_data_[Random 1-10],cat_2_data_[Random 1-10]...and so on)

有没有可能解决这个问题?其实我不知道如何解决这个问题:(

最佳答案

这是一种可行的抽样策略。

创建您的 data.frame 列表,每个类别一个,边走边打乱它们:

dflist.cat1 <- sample(list(Cat_1_Data_1, Cat_1_Data_2, ...))
dflist.cat2 <- sample(list(Cat_2_Data_1, Cat_2_Data_2, ...))
...

运行lapplyrbind 每个列表的相应元素。这将产生一个长度为 10 的列表:

dflist.new <- lapply(1:10, function(i){
rbind(dflist.cat1[[i]],
dflist.cat2[[i]],
dflist.cat3[[i]],
dflist.cat4[[i]])
})

您可以使用 dflist.new[[1]] 访问您的 data.frame 第一个,依此类推。

我确信有一种更优雅的方法可以使用二维列表索引来执行此操作,但这适用于少数类别。

关于R - 通过随机选择组成的数据帧来创建新的数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23383056/

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