【发布时间】:2018-09-05 08:30:46
【问题描述】:
我目前正在尝试使用 mutate() 基于另一列在我的数据框中创建一个新列。
我想让新列成为二项式变量(1 或 0),具体取决于它所基于的列是否显示“活动”。我目前正在尝试这样做:
violations$outcome = if (violations$RESULT == "Active") { 1 } else { 0 }
这当前会产生“警告消息:
在 if (violations$RESULT == "Active Rat Signs") { 中:
条件的长度 > 1,并且只使用第一个元素”,我查看了我的新数据框,每个 violations$outcome 都是 0。
有谁知道如何做到这一点以及为什么我的原始答案不起作用?这非常令人沮丧,如果您提供任何 cmet、建议或帮助,我将不胜感激。谢谢。
【问题讨论】:
-
ifelse是矢量化if,所以violations$outcome = ifelse(violations$RESULT == "Active", 1, 0)。但是您可以将逻辑强制转换为数字,因此大多数人更喜欢violations$outcome = as.integer(violations$RESULT == "Active"),因为它更有效。