【发布时间】:2018-03-20 11:05:00
【问题描述】:
我目前正在对数据集中的分类变量进行规范化。
我必须将汽车的变速箱正常化为手动或自动。
我的初始数据是这样的(注意这是补数据)
Make | Transmission | Price
BWM 6 Speed Automatic 50000
TOYOTA 5 Speed Automatic 40000
BWM 7 Speed Manual 70000
NISSAN 3 Speed Automatic 50000
TOYOTA 5 Speed Manual 30000
我的目标是将任何包含“自动”的变速箱转换为“自动”,将包含“手动”的变速箱转换为“手动”
我目前的方法是使用 gsub()
df$Transmission <- gsub("6 Speed Automatic", "Automatic", df$Transmission)
df$Transmission <- gsub("5 Speed Automatic", "Automatic", df$Transmission)
df$Transmission <- gsub("3 Speed Automatic", "Automatic", df$Transmission)
df$Transmission <- gsub("7 Speed Manual", "Manual", df$Transmission)
df$Transmission <- gsub("5 Speed Manual", "Manual", df$Transmission)
在实际的数据集中,有许多不同类型的自动和手动变速器。我认为复制粘贴 gsub() 函数效率不高。
我正在尝试找到一种使用正则表达式替换的方法,但是我能做的最好的事情是使用 dplyr 过滤器来识别它们
filter(df, grepl("Automatic", Transmission))
无论如何我可以将包含自动的字符串替换为“自动”并将包含手动的字符串替换为“手动”。在我的情况下,使用多个 gsub 根本没有效率。
【问题讨论】:
标签: r