Генерация случайных наборов данных в 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