我应该如何创建一个与另一个变量完全相反的二进制变量?

时间:2019-06-02 00:57:48

标签: r for-loop if-statement

我正在尝试创建一个二进制变量来回答另一个二进制变量

这是来自wooldridge库的gpa2数据集。我也尝试用while循环创建变量male,但是它仍然不起作用。我已经尝试添加else语句,但是没有用。

library(wooldridge)
gpa2 <- gpa2
for(i in 1:length(gpa2$female)){
if(gpa2$female == 0 ){
gpa2$male = 1
 }
}

我期望当女性为1时,男性为0,而当女性为0时,男性为1,但是每次观察到的输出为男性= 0。

1 个答案:

答案 0 :(得分:0)

gpa2$male<-as.numeric(!gpa2$female)

如果您使用for循环执行所有操作,那么您真的会错过R。通常,使用r的内置功能对操作进行矢量化处理,可以更快地完成您要尝试的操作。在这种情况下,我们只需使用gpa2$female,使用!将0翻转为TRUE,将1翻转为FALSE,然后将其翻转为数字格式,使其分别显示为1和0,然后将其整个向量进入gpa2$male