2

我正在尝试从包含 100 个分类单元的原始数据帧中随机抽取 50 个分类单元作为新数据帧。对于随机选择的 50 个分类单元,我想保留所有 4 列的信息。我的原始数据框(high.diversity)的一个子集如下所示:

                           Taxon              C     N    func.group
1         Curculionidae.Ischapterapion.sp. -29.06  2.19  herbivore
2         Curculionidae.Ischapterapion.sp. -29.27  1.60  herbivore
3              Curculionidae.Protapion.sp. -28.45  1.91  herbivore
4              Curculionidae.Protapion.sp. -25.99  0.55  herbivore
5              Curculionidae.Protapion.sp. -28.27  1.52  herbivore
6              Curculionidae.Hypera.meles  -25.41  3.38  herbivore
7                Curculionidae.Sitona.sp.  -27.05  2.01  herbivore
8                Curculionidae.Sitona.sp.  -26.70  3.07  herbivore
.....
230

对于我的每个分类单元,我有 1-5 个重复,所以我有 100 个分类单元,但有 230 个数据点。(例如 Curculionidae.Ischapterapion.sp. 在上表中有 2 个重复)。

我已经使用以下代码成功地随机采样了 50 行:

new.df<-high.diversity[sample(nrow(high.diversity),50),]

但是,我的问题是上面的代码给出了 50 行,但我真正想要的是随机选择 50 个分类单元,并为每个分类单元进行所有复制。(即每个具有多个重复的 50 个分类单元可能会提供接近 100 行)。因此,我需要更改上面的代码以选择 50 个随机分类单元并在这些分类单元中包含所有复制。

谁能建议我如何实现这一目标?

非常感谢,

4

1 回答 1

2

从您的分类单元和您的 data.frame 子集中到这些分类单元的样本:

df <- read.table(header = TRUE, stringsAsFactors=FALSE, text = '                          Taxon              C     N    func.group
1         Curculionidae.Ischapterapion.sp. -29.06  2.19  herbivore
2         Curculionidae.Ischapterapion.sp. -29.27  1.60  herbivore
3              Curculionidae.Protapion.sp. -28.45  1.91  herbivore
4              Curculionidae.Protapion.sp. -25.99  0.55  herbivore
5              Curculionidae.Protapion.sp. -28.27  1.52  herbivore
6              Curculionidae.Hypera.meles  -25.41  3.38  herbivore
7                Curculionidae.Sitona.sp.  -27.05  2.01  herbivore
8                Curculionidae.Sitona.sp.  -26.70  3.07  herbivore')

set.seed(1234)
take <- sample(unique(df$Taxon), 2)
df[df$Taxon %in% take, ]
                             Taxon      C    N func.group
1 Curculionidae.Ischapterapion.sp. -29.06 2.19  herbivore
2 Curculionidae.Ischapterapion.sp. -29.27 1.60  herbivore
3      Curculionidae.Protapion.sp. -28.45 1.91  herbivore
4      Curculionidae.Protapion.sp. -25.99 0.55  herbivore
5      Curculionidae.Protapion.sp. -28.27 1.52  herbivore
于 2013-10-17T15:19:42.970 回答