выборка нескольких разных размеров выборки с использованием пересечения и sample_n для создания одного DF - PullRequest
1 голос
/ 07 марта 2020

Я пытаюсь сэмплировать кадр данных, используя sample_n. Я знаю, что sample_n обычно принимает один аргумент size = одновременно, однако я хотел бы выбрать размеры выборки от 2 до max # строк в df. К сожалению, код, который я скомпилировал ниже, не выполняет эту работу. Необходимым выводом будет кадр данных со столбцом id = или список, разделенный на столбец id из пересечения ().

df <- data.frame(Date = 1:15,
                 grp = rep(1:3,each = 5), 
                 frq = rep(c(3,2,4), each = 5))

data_sampled_by_stratum <- df %>%
  group_by(Date) %>%
  crossing(id = seq(500)) %>% # repeat dataframes
  group_by(id) %>%
  sample_n(size=c(2:15)) %>% 
  group_by(CLUSTER_ID,Date) %>% filter(n() > 2)

1 Ответ

1 голос
/ 14 марта 2020

Если у вас есть колонка с разными сайтами, вы можете сделать это.

data_sampled_by_stratum <- data_grouped_by_stratum %>%
    group_by(siteid, Date) %>%
    crossing(id = seq(500)) %>% # repeat dataframes
    sample_n(rbinom(1,sum(siteid==i),(1-s)^2))
...