Обложка канала

R4marketing | канал Алексея Селезнёва | Язык R

Автор канала Алексей Селезнёв, руководитель отдела аналитики в Netpeak, автор R пакетов: ryandexdirect, rfacebookstat и др. В канале публикуются статьи, доклады, новости, заметки по языку R.

R4marketing | канал Алексея Селезнёва | Язык R

4 года назад
Открыть в
​​Генерация случайных наборов данных в R Пакет wakefield предоставляет удобный интерфейс для генерации наборов данных. Ядром пакета является функция r_data_frame(), которая создаёт таблицу со случайными данными. Внутри этой функции с помощью аргумента n, вы указываете необходимое количество наблюдений (строк), и далее используете 49 дополнительных функций, для генерации различных переменных (столбцов). Список функций для генерации переменных: ● age - возраст ● animal - животное ● answer - ответ на вопрос (да / нет) ● area - тип населённого пункта, пригород, город, село ● car - марка машины ● children - к-во детей ● coin - монета (орёл / решка) ● color - цвет ● date_stamp - дата ● death - логический вектор смертей ● dice - бросок игрового кубика ● dna - ДНК (Гуанин, Аденин, Тимин, Цитозин) ● dob - Дни рождения ● dummy - Случайный фиктивный закодированный (0/1) вектор ● education - Уровень образования ● employment - Тип занятости ● eye - Цвет глаз ● grade - Рейтинг ● grade_level - Cлучайный вектор уровней оценок. ● group - Вектор бинарных групп (например, контроль/лечение) ● hair - Цвет волос ● height - Рост ● income - доход ● internet_browser - Интернет браузер ● iq - Уроыень IQ ● language - Язык ● level -Случайный вектор целочисленных уровней ● likert - Случайный вектор ответов типа Лайкерта. ● lorem_ipsum - (псевдо) случайный текст lorem ipsum ● marital - Семейный статус ● military - Вектор родов войск ● month - Название месяца ● name - Имя ● normal - Нормальное распределение ● political - Вектор политических партий ● race - Раса ● religion - Регион ● sat - Генерация случайного нормального вектора теста на школьные способности (SAT) ● sentence - Предложение ● sex - Пол ● sex_inclusive - Вектор небинарных полов ● smokes - Логическое, курит или нет ● speed - Скорость ● state - Штат США ● string - Случайная строка символов ● upper - Случайная буква ● valid - Логическое истина или ложь ● year - Год ● zip_code - Почтовый индекс Так же вы можете передавать собственные функции, генерирующие векторы, единственное условие, данная функция должна иметь аргумент n, ограничивающий длину генерируемого вектора. Пример генерации выборки:
 
library(wakefield)
library(dplyr)

# функция генерации отделов
department <- function(
    n, 
    x = c("Sales", "Marketing", "Developores", "Finance", "Managment"), 
    prob = c(0.5, 0.2, 0.1, 0.15, 0.05), 
    name = "Department") 
{
  if (missing(n)) stop("`n` is missing")
  out <- sample(x = x, size = n, replace = TRUE, prob = prob)
  out <- factor(out, levels = x)
  varname(out, name)
}

# генерируем табдицу сотрудников
staff <- r_data_frame(
  n = 60,
  id,
  name,
  gender,
  age,
  employment,
  department,
  income,
  car,
  date_stamp(start = as.Date('2020-01-01'), k = 700, by = 'days', random = T, name = 'StartWorks'),
  valid(prob = c(0.1, 0.9), name = 'IsActive')
) %>%
  r_na(cols = 8, prob= .25)
#заметки_по_R