我正在尝试超过一个小时,根据给定的百分比随机将我的数据框分成两个框架,然而,我不能让它工作,我不知道为什么。
我看到了那些帖子:
我想要的基本上是将数据帧df和实数α∈(0,1)作为输入,并返回由两个数据帧df1和df2组成的列表。 df1最后是(a * 100)%的df,df2是剩余的df,即未选择的行。
例如,如果df有100行,并且α= 0.4,那么df1将由40个随机选择的df行组成,而df2将由其他60行组成。
我可以用一个大函数和循环等来做,我的算法,但我很确定,另一种方法应该存在,我想与社区分享这个解决方案!
感谢您的帮助!
答案 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)