объединить столбцы: объединить столбец имеет усеченные цифры - PullRequest
1 голос
/ 19 февраля 2020

Мне нужно объединить кадры данных в общем столбце ID_key. Проблема заключается в том, что для одной из таблиц в столбце ID_key были усечены последние цифры.

dataframe_a: ID_key     dataframe_b: ID_key
1002                    10020000000    
1002                    10020000000  
1002                    10020000000 
1002                    10020000000 
32410001                32410001001 
32410001                32410001001 
32410001                32410001001

Конечным результатом будет то, что dataframe_a и dataframe_b объединятся в столбце ID_key.

Есть ли способ сделать это?

1 Ответ

0 голосов
/ 19 февраля 2020

Вы можете использовать regexpr и regmatches для усечения ID_key от dataframe_b до значений, найденных в dataframe_b , а затем использовать merge.

dataframe_b$ID_key_tr  <- regmatches(dataframe_b$ID_key, regexpr(paste0("^", unique(dataframe_a$ID_key), collapse = "|"),  dataframe_b$ID_key))
dataframe_b
#       ID_key ID_key_tr
#1 10020000000      1002
#2 10020000000      1002
#3 10020000000      1002
#4 10020000000      1002
#5 32410001001  32410001
#6 32410001001  32410001
#7 32410001001  32410001

merge(dataframe_a, dataframe_b, by.x="ID_key", by.y="ID_key_tr")

Данные:

dataframe_a <- data.frame(ID_key=c("1002","1002","1002","1002","32410001","32410001","32410001"))
dataframe_b <- data.frame(ID_key=c("10020000000","10020000000","10020000000","10020000000","32410001001","32410001001","32410001001"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...