Tworzenie zmiennych kategorycznych z wzajemnie wykluczających się zmiennych fikcyjnych

Moje pytanie dotyczy opracowania wcześniej odpowiedzi na pytanie dotyczącełączenie wielu zmiennych fikcyjnych w jedną zmienną kategoryczną.

W zadanym wcześniej pytaniu zmienna kategoryczna została utworzona ze zmiennych obojętnych, które NIE wzajemnie się wykluczały. W moim przypadku moje atrapy zmienne wzajemnie się wykluczają, ponieważ reprezentują skrzyżowane warunki eksperymentalne w układzie czynnikowym 2X2 między podmiotami (który ma również komponent wewnątrz przedmiotu, którego tutaj nie zajmuję), więc nie sądzęinteraction robi to, co muszę zrobić.

Na przykład moje dane mogą wyglądać tak:

id   conditionA    conditionB    conditionC     conditionD
1    NA            1             NA             NA
2    1             NA            NA             NA
3    NA            NA            1              NA
4    NA            NA            NA             1
5    NA            2             NA             NA
6    2             NA            NA             NA
7    NA            NA            2              NA
8    NA            NA            NA             2

Chciałbym teraz utworzyć zmienne kategoryczne, które łączą różne rodzaje warunków. Na przykład ludzie, którzy mieli wartości dla warunku A i B, mogą być zakodowani za pomocą jednej zmiennej jakościowej, a ludzie, którzy mieli wartości dla warunku C i D.

id   conditionA    conditionB    conditionC     conditionD  factor1    factor2
1    NA            1             NA             NA          1          NA
2    1             NA            NA             NA          1          NA
3    NA            NA            1              NA          NA         1
4    NA            NA            NA             1           NA         1
5    NA            2             NA             NA          2          NA
6    2             NA            NA             NA          2          NA
7    NA            NA            2              NA          NA         2
8    NA            NA            NA             2           NA         2

Właśnie teraz to robięifelse() instrukcje, które są po prostu gorącym bałaganem (i nie zawsze działają). Proszę pomóż! Prawdopodobnie istnieje jakiś super oczywisty „łatwiejszy sposób”.

EDYTOWAĆ:

Rodzajeifelse Polecenia, których używam, są następujące:

attach(df)
df$factor<-ifelse(conditionA==1 | conditionB==1, 1, NA)
df$factor<-ifelse(conditionA==2 | conditionB==2, 2, df$factor)

W rzeczywistości łączę 6-8 kolumn za każdym razem, więc bardziej eleganckie rozwiązanie byłoby bardzo pomocne.

questionAnswers(3)

yourAnswerToTheQuestion