【问题标题】:How to split data into two parts of specified ratio NOT randomly如何将数据分成指定比例的两部分不是随机的
【发布时间】:2020-02-24 06:45:13
【问题描述】:

如果我有一个包含 100 行的数据框,并且我想以 0.7 的拆分比率将数据拆分为测试和训练数据,我将如何拆分而不是随机拆分?例如,我希望前 70% 是一个块,最后 30% 是另一个块。 块 1:

row     example
1       a
2       b
.
.
.
68      a3
69      a4
70      a5

块 2:

row     example
71       a6
72       a7
.
.
.
98      b1
99      b2
100     b3

我不希望每个拆分中的随机行

【问题讨论】:

  • train=df[1:70,], test=df[71:100,]
  • @user2974951 这不适用于具有任何其他棕褐色 100 行的数据集。我也不打算对这些值进行硬编码

标签: r


【解决方案1】:

你可以试试:

split(mtcars, 1:nrow(mtcars)/nrow(mtcars) >= 0.7)

分别产生 22 行和 10 行。

【讨论】:

    【解决方案2】:

    另一个基本 R 选项,使用 split + findInterval

    res <- split(df,findInterval(seq(nrow(df)),round(nrow(df)*0.7),rightmost.closed = T))
    

    【讨论】:

      猜你喜欢
      • 2015-09-18
      • 1970-01-01
      • 2021-01-07
      • 2021-07-17
      • 1970-01-01
      • 2017-10-12
      • 2017-10-24
      • 2011-05-11
      • 1970-01-01
      相关资源
      最近更新 更多