У меня есть два фрейма данных в R с разным количеством строк. У df1 есть 2 столбца с 12000+ строками, а у df2 <200 строк. Оба кадра данных имеют строки в качестве наблюдений. Пример из df1: </p>
Name = c("7PR SRO.","7PR","3XL INC","ACME INC","ACME INCORP")
abbr = c("7PR","7PR","3XL","ACME","ACME")
df1<- data.frame(Name, abbr, stringAsFactors=FALSE)
Второй фрейм данных df2 имеет тот же столбец имени, что и df 1. У него был только столбец имени, но для сопоставления записей строк я слил их с df1 с помощью функции слияния. Но я все равно получил около 100+ строк с NA в столбце abbr. Пример:
df2<- data.frame(Name = c("7PR S.R.O.", "3XL LLC", "ACME Ltd"), stringAsFactors=FALSE)
Имя столбца df2 также имеет аналогичные названия компаний, такие как df1, но могут быть изменения в пунктуации или изменения с «Corp» на «Ltd» et c. В основном я хочу 3XL как abbr, независимо от того, является ли его LL C или Ltd после имени. Я попытался использовать функцию stringdist stringdist(df2$Name,df1$Name,method ='jw')
, но она выдает ошибку, говорящую: «Большая длина объекта не кратна короткой длине объекта».
Мне нужно получить df1$Name
, соответствующий df2$Name
, игнорирующий знаки препинания или изменения типа компании, такие как corp, в c, ltd, ll c et c. Может кто-нибудь, пожалуйста, помогите мне найти способ сделать это?