【发布时间】:2016-10-26 05:15:58
【问题描述】:
使用下面的简单数据框,我要创建一个新列,其中包含 1 用于 City = "Toronto" 和 PostInjury = "0-1" 的实例,一个 2 用于 City = "Montreal" 和 PostInjury = 的实例6-10",其他都是 3。
我想使用 mutate 和 if_else,但不确定如何使用这种组合将多个列组合有条件地重新编码为一个新列而无需中间步骤?我可以使用两个 if_else 语句来创建两个新列,然后将它们与 Tidyr 的联合合并,然后重新编码,但这似乎很乏味。
我错过了什么优雅的东西吗?我有一种感觉。有没有办法以这种方式将 if_else 与 dplyr 或 case_when 一起使用?
City<-c("Toronto", "Toronto", "Montreal","Ottawa","Montreal",
"Hamilton","Peterborough","Toronto","Hamilton","Montreal")
Client<-c("Cl1","Cl2","Cl3","Cl4","Cl5","Cl6","Cl7","Cl8","Cl9","Cl10")
PostInjury<-c("0-1","6-10","0-1","2-5","6-10","0-1","11-15","0-1","0-1","6-10")
DF<- data.frame(City,Client,PostInjury)
【问题讨论】: