Вы не предоставили данные или код для запуска, поэтому я сгенерирую некоторый код, чтобы показать идею
set.seed(31)
# Create dataset with three variables
# Participate are the ones that we wish to include in the study.
# You have those in your excel file.
fakedata <- data.frame(houseid=1:534,
size=rbinom(534, size=5, prob=.5),
participate=sample(c("y", "n"), size=534, replace=TRUE))
, которая производит
head(fakedata)
houseid size participate
1 1 3 y
2 2 4 n
3 3 2 n
4 4 2 y
5 5 4 y
6 6 2 n
Теперь мы можем использовать tidyverse
для генерации случайной перестановки наблюдений / контролей. Сначала мы создаем вектор правильной длины (используя rep
с длиной), а затем перетасовываем их, используя sample
.
library("tidyverse")
fakedata %>% # Take data
filter(participate=="y") %>%
mutate(group=sample(rep(c("Case", "Ctrl"), length=n())))
Это дает
houseid size participate group
1 1 3 y Case
2 4 2 y Case
3 5 4 y Ctrl
4 7 4 y Case
5 8 1 y Case
6 9 4 y Ctrl
7 13 3 y Case
8 16 1 y Ctrl
.
.
.