【问题标题】:random sampling from dataframe using column使用列从数据帧中随机抽样
【发布时间】:2013-10-17 23:21:12
【问题描述】:

我正在尝试从包含 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 个随机分类单元并包括这些分类单元中的所有复制。

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

非常感谢,

M

【问题讨论】:

    标签: r


    【解决方案1】:

    来自您的分类单元的样本以及您的 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-16
      • 2019-09-20
      • 2014-06-22
      • 1970-01-01
      • 1970-01-01
      • 2019-11-18
      • 1970-01-01
      相关资源
      最近更新 更多