我的数据框中有一列提示,并且将尝试进行逻辑回归以预测提示是留下还是现在。
尝试使用mutate
在我的数据中创建具有1和0的布尔列。 1
代表小费,0
代表小费。
我的代码非常简单:
data %>% mutate(ifelse((Tips > 0, 1), ifelse(Tips == 0, 0)))
作为输出,我具有大于1的值,例如,tip = 7.00转换为布尔值7,这不是我期望的值。
Tips boolean
1.75 1
2.00 2
0.00 0
2.35 2
0.00 0
1.00 1
0.00 0
0.00 0
7.00 7
0.00 0
我想念什么?谢谢!
答案 0 :(得分:3)
您的代码不起作用,但是我想您正在尝试执行以下操作:
library(dplyr)
data %>% mutate(boolean = ifelse(Tips > 0, 1, ifelse(Tips == 0, 0, NA)))
或者如果您有很多条件需要检查,则使用更干净的case_when
。
data %>% mutate(boolean = case_when(Tips > 0 ~ 1,
Tips == 0 ~ 0))
假设Tips
始终为0或正值,则根本不需要任何ifelse
。
data$boolean <- +(data$Tips > 0)
或使用sign
返回0表示0值,返回1表示大于0的任何数字。
data$boolean <- sign(data$Tips)