2015-11-09 2 views
-1

У меня есть набор данных, который выглядит следующим образом:R - выбрать образец из набора данных из каждой группы значений

string_1,score,group 
"sdfsd",0.546,0.5 
"sdfsd",0.53,0.5 
"sdfsd",0.52,0.5 
"dgfbx",0.43,0.4 
"dsgfgsd",0.48,0.4 
"dsgfgsd",0.42,0.4 
"dsgfgsd",0.84,0.8 
"dsgfgsd",0.83,0.8 
"dsgfgsd",0.82,0.8 

И я хочу, чтобы взять образец из каждой группы. значение - я хочу взять случайные 2 строки из каждой группы значений: 0,4,0,5,0,8 (групповые поля)

Каков самый простой способ сделать это?

Thanks

+1

Все, что вы уже пробовали? – Heroka

+0

С 'library (dplyr)', который будет 'dat%>% group_by (group)%>% sample_n (2)' –

ответ

2

Вы можете подумать о том, чтобы сделать что-то подобное. Он разбивает ваши данные по группам и возвращает выборочные строки.

set.seed(1) 
res <- do.call(rbind,lapply(split(dat,dat$group),function(x){x[sample(nrow(x),2),]})) 
> res 
     string_1 score group 
0.4.4 dgfbx 0.43 0.4 
0.4.6 dsgfgsd 0.42 0.4 
0.5.2 sdfsd 0.53 0.5 
0.5.3 sdfsd 0.52 0.5 
0.8.7 dsgfgsd 0.84 0.8 
0.8.8 dsgfgsd 0.83 0.8 
Смежные вопросы