在 SparkR 中,我们如何根据对现有列的逻辑操作添加新列?

In SparkR, how can we add a new column based on logical operations on an existing column?

我可以轻松做到这一点

employees$salarynew = employees$Salary * 2
employees$sale_chance <- (employee$Salary > 2000) 

但是如果我想要这样的东西

employees$sale_chance_1 <-  if (employees$Salary > 2000) 'high'  else 'low'

报错

Error in if (employees$Salary > 2000) "high" else "low" : 
  argument is not interpretable as logical

这也给出了同样的错误

emp1 <- withColumn(employees, "sale_prob", {if (employees$Salary > 2000) 'high' else 'low'})

如评论中所建议

emp$sale = ifelse(emp$Salary > 2000, 'high', 'low')

此外,这适用于更复杂的表达式

emp1 <- selectExpr(emp, "case Salary>2000 when TRUE then 'high' else 'low' end as sale_prob")

不应该是这样吗ifelse(employees$Salary > 2000, 'high', 'low')