将数据帧随机分割成矢量机的多个数据帧

时间:2017-03-13 22:22:02

标签: r split

我正在尝试超过一个小时,根据给定的百分比随机将我的数据框分成两个框架,然而,我不能让它工作,我不知道为什么。

我看到了那些帖子:

我想要的基本上是将数据帧df和实数α∈(0,1)作为输入,并返回由两个数据帧df1和df2组成的列表。 df1最后是(a * 100)%的df,df2是剩余的df,即未选择的行。

例如,如果df有100行,并且α= 0.4,那么df1将由40个随机选择的df行组成,而df2将由其他60行组成。

我可以用一个大函数和循环等来做,我的算法,但我很确定,另一种方法应该存在,我想与社区分享这个解决方案!

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

这是一个使用sample将数据拆分为两个data.frames的函数:

splitTable <- function(df, prob) {
  variant <- sample(seq(1, 0), size = nrow(df), replace = TRUE, prob = c(prob, 1 - prob))
  res <- split(df, variant) 
  return(res)
}

res <- splitTable(iris, 0.4)