R-根据部分字符串创建新列

时间:2018-10-03 01:54:05

标签: r data-cleaning

我有一个很大的数据集(数据集“ A”),其列Description沿线包含一些内容 “ 1952 Rolls Royce Silver Wraith”或“ 1966 Holden ”。

我还有一个单独的数据集(数据集“ B”),其中包含我需要的每个Car Brand的列表(例如“ 持有”,“ 劳斯莱斯“,”保时捷“)。

如何在数据集“ A”中创建新列,以为Description的部分字符串分配正确的Car Brand

(此列仅包含正确的Car Brand和相应的匹配单元格)。

谢谢。

Description New Column 1971 Austin 1300 Austin

1 个答案:

答案 0 :(得分:1)

tidyverse的解决方案

A <- data.frame (Description = c("1970 Austin"), 
                 stringsAsFactors = FALSE)

B <- data.frame (Car_Brand = c("Austin"), 
                 stringsAsFactors = FALSE)

library(tidyverse)
A %>% mutate( New_Column= str_match( Description, B$Car_Brand)[,1] )

#   Description New_Column
# 1 1970 Austin     Austin