Чтобы прояснить вопрос, позвольте мне начать с одного детского примера моего фрейма данных.
ID <- c(rep("first", 2), rep("second", 4), rep("third",1), rep("fourth", 3))
Var_1 <- c(rep("A",2), rep("B", 2), rep("A",3), rep("B", 2), "A")
Var_2 <- c(rep("C",2), rep("D",3) , rep("C",2), rep("E",2), "D")
DF <- data.frame(ID, Var_1, Var_2)
> DF
ID Var_1 Var_2
1 first A C
2 first A C
3 second B D
4 second B D
5 second A D
6 second A C
7 third A C
8 fourth B E
9 fourth B E
10 fourth A D
Имеется одна факторная переменная ID
и две факторные переменные Var_1
с R=2
уровнями факторов и Var_2
с C=3
уровнями факторов.
Я хотел бы получить новый фрейм данных с (RxC)+1=(2x3)+1
переменными с частотами всех комбинаций уровней факторов - отдельно для каждого уровня в переменной ID, что бы выглядело так:
ID A.C A.D A.E B.C B.D B.E
1 first 2 0 0 0 0 0
2 second 1 1 0 0 2 0
3 third 1 0 0 0 0 0
4 fourth 0 1 0 0 0 2
Попробовал пару функций, но результатов и близко не было, так что о них даже не стоит упоминать. В исходном фрейме данных я должен получить (6x9)+1=55 переменных.
РЕДАКТИРОВАТЬ: Существуют решения для подсчета уровней факторов для одной или многих переменных отдельно, но я не мог понять, как сделать общий подсчет комбинаций уровней факторов для двух (или более) переменных. Реализация решения для других теперь кажется легкой, когда я получил ответы, но я не мог добраться туда сам.