У меня есть набор данных с 16 наблюдениями в настоящее время.У меня бинарное лечение (в настоящее время 8 контрольных, 8 лечебных).Мне нужно вывести все возможные различные назначения лечения для этого набора данных, который все еще заканчивается 8 контрольными и 8 обработками.В настоящее время я генерирую все возможные перестановки 0 и 1 для 16 наблюдений и фильтрую для 8 контрольных или 8 обработок.К сожалению, если мне нужно сделать более 26 наблюдений (магическое число, я считаю), фрейм данных становится слишком большим для R. Есть ли способ создать таблицу перестановок без хлопот с репликацией всех возможностей и их фильтрацией впосередине, как в приведенном ниже коде.
library(tidyverse)
library(random)
library(data.table)
test <- tibble("obs"=1:16,
"treatment"=c(rep(0,8),rep(1,8)),
"outcome"=randomNumbers(x,0,50,1))
treated <- sum(test$treatment)
perm <- do.call(CJ, replicate(16,0:1, FALSE))
perm <- perm %>% mutate(check=rowSums(perm)) %>% filter(., check == treated)
perm$check <- NULL
perm <- as_tibble(transpose(perm))