La mia domanda riguarda un'elaborazione su una domanda precedentemente fornita a proposito di combining multiple dummy variables into a single categorical variable.Creazione di variabili categoriali da variabili dummy mutuamente esclusive
Nella domanda precedente, la variabile categoriale è stata creata da variabili dummy che NON si escludevano a vicenda. Per il mio caso, le mie variabili dummy si escludono a vicenda perché rappresentano condizioni sperimentali incrociate in un design fattoriale 2x2 tra soggetti (che ha anche una componente soggettiva all'interno di cui non mi sto riferendo qui), quindi non penso che lo interaction
faccia cosa Devo fare.
Per esempio, i miei dati potrebbero apparire così:
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
Mi piacerebbe fare ora variabili categoriali che combinano tra i diversi tipi di condizioni. Ad esempio, le persone che avevano valori di condizione A e B possono essere codificati con una sola variabile categoriale, e le persone che avevano valori di condizione C e 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
In questo momento, sto facendo questo utilizzando ifelse()
dichiarazioni, che è semplicemente un pasticcio caldo (e non sempre funziona). Per favore aiuto! Probabilmente c'è un "modo più semplice" super-ovvio.
EDIT:
I tipi di ifelse
comandi che sto usando sono i seguenti:
attach(df)
df$factor<-ifelse(conditionA==1 | conditionB==1, 1, NA)
df$factor<-ifelse(conditionA==2 | conditionB==2, 2, df$factor)
In realtà, io sto combinando tra 6-8 colonne di volta in volta, in modo da una soluzione più elegante aiuterebbe molto
Grazie! Buona cattura ... un refuso nelle ultime 2 righe quando stavo inventando dati di esempio. – roody
@roody: Può 'condizioneD' mai contenere il valore, ad esempio, 3? Cosa dovrebbe succedere allora? – krlmlr
No, sono tutte due variabili fattore di livello - 1 e 2 sono solo i valori assegnati loro da Qualtrics, ma è sempre una scelta dictomous. – roody