【问题标题】:How should I create a binary variable that is exactly the opposite of another one?我应该如何创建一个与另一个变量完全相反的二进制变量?
【发布时间】:2019-06-02 00:57:47
【问题描述】:

我正在尝试创建一个二进制变量作为另一个二进制变量的答案

这是来自 wooddridge 库的 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。

【问题讨论】:

    标签: r for-loop if-statement


    【解决方案1】:
    gpa2$male<-as.numeric(!gpa2$female)
    

    如果你用 for 循环做所有事情,你真的错过了 R。通常情况下,使用 r 的内置矢量化操作功能可以更快地完成您想做的事情。在这种情况下,我们只需使用gpa2$female,使用! 将0 转换为TRUE,将1 转换为FALSE,然后将其转换为数字格式,使它们分别显示为1 和0,并将整个向量放入@987654324 @。

    【讨论】:

    • abs(gpa2$female - 1)。整数和逻辑之间没有来回。
    • 没错,但我怀疑它在处理时间方面会有所不同。另外,无论如何,让两列逻辑而不是数字可能会更好......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-10
    • 2021-09-25
    相关资源
    最近更新 更多