dplyr mutate-ifelse组合没有创建正确的条件变量

时间:2018-01-16 00:13:32

标签: r dplyr mutate

我试图在dplyr中使用mutate创建一个条件变量,这似乎不适合我。请参阅我尝试创建的示例数据帧和组合得分变量。请注意,新变量的第3次观察结合了.score'不是B,C和D的总和。似乎只计算了第一个观测值,并且该值用于每行观测。

我在这里缺少什么?想了解为什么会发生这种情况的原因(不是那么多替代代码或解决方案)

${zookeeper.cluster.port}

1 个答案:

答案 0 :(得分:4)

ifelse的文档说:

  

ifelse返回一个与test

相同形状的值

此处test"B" %in% names(df) & "C" %in% names(df) & "D" %in% names(df),返回1元素向量

[1] TRUE

因此,ifelse调用返回一个只包含B + C + D的第一个元素的1元素向量,然后在整个向量中回收。