2014-10-22 2 views
1

Мне нужно создать фрейм данных в R с идентификатором и полом из 50 сотрудников. Для этого я использовал этот код с функцией gl().Создание данных с заданной вероятностью в R

gender<-gl(2, 25, label=c("Male", "Female")) 
id<-1:50 
df <- data.frame(id, gender) 

Но проблема в том, что первые 25 строк являются «мужчинами», а следующие 25 строк - «женщины». Я хочу генерировать пол случайным образом с 50% шансом для каждого пола. Есть ли все-таки сделать это в R?

ответ

3

Вы, вероятно, хотите sample()

gender <- sample(c("Male", "Female"), size=50, replace=TRUE) 

Вы также можете сделать такие вещи, как создать вектор в случайном порядке ровно 25 самцов и самок

sample(rep(c("Male","Female"),each=25) 

или получить отличные пропорции 50/50

sample(c("Male", "Female"), size=50, replace=TRUE, prob=c(0.75,0.25)) 
+1

+1, и, конечно, это можно сделать за один шаг, не создавая объекты 'id' и' ge nder' перед созданием data.frame (например. 'df <- data.frame (id = 1:50, gender = sample (c (« Male »,« Female »), 50, replace = T, prob = c (0.5, 0.5)))) –

Смежные вопросы