我的问题是关于之前回答过的一个问题的详细说明,该问题涉及将多个虚拟变量合并为单个分类变量的组合。
在以前提出的问题中,分类变量是从不互斥的虚拟变量创建的。对于我的情况,我的虚拟变量是互斥的,因为它们代表了2X2受试者间因子设计交叉实验条件(也有一个我这里不涉及的受试者内部分量),所以我不认为
例如,我的数据可能是这样的:
我希望现在可以创建跨不同类型条件的分类变量。例如,对于具有条件A和B值的人可以编码为一个分类变量,对于具有条件C和D值的人也是如此。
在以前提出的问题中,分类变量是从不互斥的虚拟变量创建的。对于我的情况,我的虚拟变量是互斥的,因为它们代表了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列进行合并,因此更优雅的解决方案会帮助很多。
conditionD
是否可能包含值,比如说 3?那么应该发生什么? - krlmlrsh: make: command not found ERROR: compilation failed for package 'kimisc'
。 - roodymake
,g++
,...)。或者直接从这里复制代码... - krlmlr