我有两个连续变量,我将它们虚拟编码为具有2个级别的类别变量。这些变量中的每一个都针对该变量的低位和高位编码为0或1。对两个变量进行z评分,以了解它们是低于平均值还是高于平均值。
MeanAboveAvo <- ifelse(Dataframeforstudy2$avo < 0, 0, 1)
MeanAboveAnx <- ifelse(Dataframeforstudy2$anx < 0, 0 , 1)
我的问题是如何将这两个变量一起伪编码?我想使用这两个变量(MeanAboveAvo和MeanAboveAnx)创建具有4个不同级别的单个变量。我想用1,2,3,4编码的单个变量,并且1是(0,0),2是(0,1),3是(1,0)和4是(1,1) 。
我的代码是这样的:
stats <- while(MeanAboveAnx = 0 || MeanAboveAvx = 1) {
if(MeanAboveAnx = 0 & MeanAboveAvo = 0 ){
1
}
else if (MeanAboveAnx = 0 & MeanAboveAvo = 1){
2
}
else if(MeanAboveAnx = 1 & MeanAboveAvo = 0){
3
}
else {
4
}}
它根本没有编码,我收到一条错误消息。我可以做些什么来获得想要的结果?
提前谢谢你的帮助!
R中的类别变量不需要是数字变量(因此有很多缺点!):因此,您不需要ifelse
:
MeanAboveAvo <- Dataframeforstudy2$avo < 0
MeanAboveAnx <- Dataframeforstudy2$anx < 0
接下来,使用这些编码的代码包含多个错误:
while
这里的含义。=
,==
因此所有符号都必须转换为。if
与相比ifelse
,不会进行矢量化,因此您不能使用它将其结果分配给长度> 1的矢量。如果我对您的理解正确,则以下是一种对进行编码的(规范)方法stats
:
stats <- paste(MeanAboveAvo, MeanAboveAnx)
这会将逻辑向量转换为字符向量,并将它们逐个元素级联。再一次,R中没有必要(而且非常规!)将这些类别转换为数字变量。尽管通过将其转换为因子可能很有意义as.factor
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句