【问题标题】:split data frame keep at least one factor in both subsets拆分数据框在两个子集中至少保留一个因素
【发布时间】:2017-03-14 14:33:24
【问题描述】:

我有一个 20 万行、10 列的数据框。 (为了方便阅读,这里只包括 3 个)

df=data.frame(A=rep(letters[1:20],10000),B=rep(letters[2:21],10000),C=rep(letters[3:22],10000))

我正在尝试将数据分成两个子集 - 训练和测试。

s=sample(dim(df[1],.6*dim(df)[1])
training=df[s,]
testing=df[-s,]

有没有办法从 df 中抽取样本,使得每个结果子集中至少有一个因子?也就是说,从 A-J 列中,我想要训练集和测试集中的每个因子的至少一个实例。

我尝试了Random subset containing at least one instance of each factor,但无法将其应用于多个列,而不是示例中使用的单个 on。

【问题讨论】:

标签: r dataframe split factors


【解决方案1】:

我认为您希望进行分层抽样。在 R 中有几个选项可以这样做,例如stratasampling 包中。查看this discussion

【讨论】:

    【解决方案2】:
    s=createDataPartition(paste(df$A, df$B,df$C),p=.6,list=FALSE)
    training=df[s,]
    testing=df[-s,]
    

    工作

    【讨论】:

      猜你喜欢
      • 2018-03-18
      • 2023-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-02
      • 1970-01-01
      • 2013-10-20
      • 2017-04-23
      相关资源
      最近更新 更多