使用列从数据帧中随机抽样

时间:2013-10-17 15:15:12

标签: r

我正在尝试从包含100个Taxon的原始数据框中随机抽取50个Taxon来获取新的数据帧。对于随机选择的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

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

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

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

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

有人可以建议我如何实现这个目标吗?

非常感谢,

中号

1 个答案:

答案 0 :(得分:2)

来自您的Taxons的样本以及您的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