Создайте столбец во фрейме данных с двумя уровнями, расположенными случайным образом в строках столбца

#r

Вопрос:

Я хочу добавить новый столбец с именем user_type в моем фрейме данных, который будет включать слова "active" и "inactive" случайным образом. Мне все равно, сколько "active" и "inactive" что у меня будет и в каких рядах.

 # Dummy data
data <- data.frame(
  int_end = as.Date("2017-06-14") - 0:364,
  users = runif(365)   seq(-140, 224)^2 / 10000,
  user_type=()
)
 

Комментарии:

1. user_type = ifelse( runif(365) > 0.5, "active", "inactive")

Ответ №1:

Вы можете сделать:

 library(dplyr)
data <- data %>%
  mutate(user_type = sample(c("active","inactive"),size = nrow(data),replace = T))
 

Ответ №2:

Вы можете использовать sample

 data <- data.frame(
  int_end = as.Date("2017-06-14") - 0:364,
  users = runif(365)   seq(-140, 224)^2 / 10000,
  user_type=sample(c('active', 'inactive'), 365, replace = TRUE)
)
 

Ответ №3:

Мы также можем использовать sample в data.table

 library(data.table)
setDT(data)[, user_type := sample(c("active", "inactive"),
     size = .N, replace = TRUE)]