Рандомизация распределения данных в списке

У меня есть фрейм данных df, который я хотел бы разделить на обучающий набор и тестовый набор. Вместо того, чтобы получать только один обучающий и тестовый набор, я хотел бы получить их распределение (n = 100).

Я пытаюсь сделать это с помощью lapply, но значения для каждого элемента в списке оказываются абсолютно одинаковыми. Как рандомизировать значения в двух списках (т. е. train.data и test.data)?

Ожидаемым результатом будет список как для train.data, так и для test.data, каждый из которых содержит 100 элементов с разными подмножествами df в обоих из них.

library(lubridate)
library(tidyverse)
library(caret)

date <- rep_len(seq(dmy("01-01-2013"), dmy("31-12-2013"), by = "days"), 300)
ID <-  rep(c("A","B","C"), 50)
class <-  rep(c("N","M"), 50)
df <- data.frame(value  = runif(length(date), min = 0.5, max = 25),
                 ID, 
                 class)
training.samples <- df$class %>% 
  createDataPartition(p = 0.6, list = FALSE)


n <- 100

train.data  <- lapply(1:n, function(x){
  df[training.samples, ]
})
test.data <- lapply(1:n, function(x){
  df[-training.samples, ]
})

Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
1
0
18
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте использовать replicate

f1 <- function(dat, colnm) {
  s1 <- createDataPartition(dat[[colnm]], p = 0.6,
     list = FALSE)
  return(list(train.data = dat[s1,], test.data = dat[-s1,]))
}
n <- 100
out <- replicate(n, f1(df, "class"), simplify = FALSE)

Другие вопросы по теме