我的问题是关于先前回答的关于将多个虚拟变量组合成单个分类变量的问题的详细说明。
在之前提出的问题中,分类变量是由不互斥的虚拟变量创建的。就我而言,我的虚拟变量是互斥的,因为它们代表 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 列,因此更优雅的解决方案会很有帮助。