Создание категориальных переменных из взаимоисключающих фиктивных переменных
Мой вопрос касается разработки ранее отвеченного вопроса ообъединение нескольких фиктивных переменных в одну категориальную переменную.
В ранее заданном вопросе категориальная переменная была создана из фиктивных переменных, которые НЕ были взаимоисключающими. Для моего случая мои фиктивные переменные являются взаимоисключающими, потому что они представляют пересеченные экспериментальные условия в факториальном дизайне 2X2 между субъектами (который также имеет компонент внутри предметов, который я здесь не рассматриваю), поэтому я не думаю, чтоinteraction
делает то, что мне нужно сделать.
Например, мои данные могут выглядеть так:
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
Я хотел бы сейчас сделать категориальные переменные, которые сочетают в себе различные типы условий. Например, люди, которые имели значения для условий A и B, могут быть закодированы с помощью одной категориальной переменной, а люди, которые имели значения для условий C и 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
Прямо сейчас я делаю это, используяifelse()
заявления, что довольно просто горячий беспорядок (и не всегда работает). Пожалуйста помоги! Там, наверное, какой-то супер-очевидный «более простой способ».
РЕДАКТИРОВАТЬ:
Видыifelse
Команды, которые я использую, следующие:
attach(df)
df$factor<-ifelse(conditionA==1 | conditionB==1, 1, NA)
df$factor<-ifelse(conditionA==2 | conditionB==2, 2, df$factor)
На самом деле я объединяю 6-8 столбцов каждый раз, так что более элегантное решение очень поможет.