2015-09-30 69 views
0

我可以很容易地做到這一點在SparkR中,我們如何在現有列上添加基於邏輯操作的新列?

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'}) 
+1

它不應該像'ifelse(員工$薪水> 2000,'高','低')' – Mateusz1981

+0

它完美的工作。謝謝。 –

回答

1

它不應該是這樣的ifelse(employees$Salary > 2000, 'high', 'low')

0

正如評論

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

也有人,這適用於更復雜的表達式

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