Есть ли способ в R использовать пакет dplyr для выборки равного количества факторов? - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть следующий фрейм данных:

    > testing
# A tibble: 27,507 x 2
   type      mmr
   <fct>   <dbl>
 1 Public    100
 2 Public    100
 3 Private   100
 4 Public    100
 5 Public    100
 6 Public    100
 7 Public    100
 8 Public    100
 9 Public    100
10 Public    100
# ... with 27,497 more rows

Этот фрейм данных имеет следующий счет:

# A tibble: 2 x 2
  type        n
  <fct>   <int>
1 Private  6815
2 Public  20692

Я хочу распределить Publi c и Private в переменные, однако они потребуются иметь равное количество, чтобы сделать это. Есть ли способ взять выборку из 6000 частных и 6000 публикаций c с помощью пакета DPLYR, чтобы я мог выполнить функцию распространения?

Спасибо

1 Ответ

0 голосов
/ 26 апреля 2020

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

library(dplyr)

data <- testing %>% group_by(type) %>% sample_n(6000)

Обратите внимание, что spread был заменен на pivot_wider, поэтому для получения данных в широком формате вы можете использовать

data %>% 
   group_by(a) %>% mutate(row = row_number()) %>%  
   tidyr::pivot_wider(names_from = a, values_from = b) %>%
   #tidyr::spread(a, b) %>%
   select(-row)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...