分开十个随机培训和测试数据集

时间:2018-03-27 22:50:10

标签: r

我正在尝试将我的数据集分成十对不同的随机训练(50%)和测试(50%)数据集。以下是我的R代码: `

n_all = nrow(data3)
set.seed(1)
train_all_1 = sample(1:n_all,0.5*n_all,replace = FALSE)
traindata_1 = data3[train_all_1,]
testdata_1 = data3[-train_all_1,]
set.seed(2)
train_all_2 = sample(1:n_all,0.5*n_all,replace = FALSE) 
traindata_2 = data3[train_all_2,]
testdata_2 = data3[-train_all_2,]

` ...
继续....直到10.我想知道是否有另一种方法可以通过使用任何包或函数来做到这一点?

2 个答案:

答案 0 :(得分:0)

这可能会有所帮助

train.test <- function(seed=NULL, data){
  if(!is.null(seed)){set.seed(seed)}
  train_all <-sample(1:n_all,0.5*n_all,replace = FALSE)
  output <- list(traindata=data[train_all,],
                 testdata=data[-train_all,])
  return(output)
}

如您所见train.test返回包含traindatatestdata

的列表
lapply(1:10, function(i) train.test(seed=i, data=data3))

您也可以使用replicate

set.seed(1); replicate(10, train.test(data=data3), simplify = FALSE)

答案 1 :(得分:0)

var jsonResponse = JsonConvert.DeserializeObject<List<List<string>>>(result); 参数设置为simplify时使用复制:

FALSE