gpt4 book ai didi

r - 从具有嵌套结构的数据帧创建随机样本

转载 作者:行者123 更新时间:2023-12-02 00:58:47 24 4
gpt4 key购买 nike

这个问题源自 SO 帖子 found here

我正在尝试使用嵌套条件提取数据框中的随机行样本。

使用以下虚拟数据集(修改自 iris):

  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 5.3 2.9 1.5 0.2 setosa
5 5.2 3.7 1.3 0.2 virginica
6 4.7 3.2 1.5 0.2 virginica
7 3.9 3.1 1.4 0.2 virginica
8 4.7 3.2 1.3 0.2 virginica
9 4.0 3.1 1.5 0.2 versicolor
10 5.0 3.6 1.4 0.2 versicolor
11 4.6 3.1 1.5 0.2 versicolor
12 5.0 3.6 1.5 0.2 versicolor

下面的代码可以很好地获取 2 行的简单样本:

iris[sample(nrow(iris), 2), ]

但是,我想做的是为特定变量的每个级别抽取 2 行样本。例如,为变量“物种”的每个级别创建 2 行的随机样本,如下所示:

  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
4 5.3 2.9 1.5 0.2 setosa
6 4.7 3.2 1.5 0.2 virginica
7 3.9 3.1 1.4 0.2 virginica
11 4.6 3.1 1.5 0.2 versicolor
12 5.0 3.6 1.5 0.2 versicolor

感谢您的帮助!

最佳答案

使用dplyr非常简单:

library(dplyr)
iris %>%
group_by(Species) %>%
sample_n(size = 2)

# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 1 4.6 3.4 1.4 0.3 setosa
# 2 5.2 3.5 1.5 0.2 setosa
# 3 6.5 2.8 4.6 1.5 versicolor
# 4 5.7 2.8 4.5 1.3 versicolor
# 5 5.8 2.8 5.1 2.4 virginica
# 6 7.7 2.6 6.9 2.3 virginica

您可以根据需要按任意数量的列进行分组

CO2 %>% group_by(Type, Treatment) %>% sample_n(size = 2)

关于r - 从具有嵌套结构的数据帧创建随机样本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29110179/

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