異なるデータフレームの一致に関する次の問題があります。まず第一にR - 一致するデータフレーム
、私は次のテーブルがあります。
table<-data.frame(brand=c('duna','cars','cars','sea','sea','sea','mega','moon','moon'),model=c('mm','mm','mm','ll','ll','ll','tr','tr','tr'),version=c("2.8 sr cab. dupla 4x4 tdi","2.0 lsdakar 16v 4x4 hi-flex 5-p","2.4 ls cab. simples 4x2 flex 2-p","2.3 xl cab. simples 4x2 2-p","1.8 sx 5-p","1.0 mpfi joy 8v","hatch ls 1.0 8v","2.3 xlt cab. dupla 4x2 limited 4-p","1.4 fire ce xlt flex 2-p"))
brand model version
1 duna mm 2.8 sr cab. dupla 4x4 tdi
2 cars mm 2.0 lsdakar 16v 4x4 hi-flex 5-p
3 cars mm 2.4 ls cab. simples 4x2 flex 2-p
4 sea ll 2.3 xl cab. simples 4x2 2-p
5 sea ll 1.8 sx 5-p
6 sea ll 1.0 mpfi joy 8v
7 mega tr hatch ls 1.0 8v
8 moon tr 2.3 xlt cab. dupla 4x2 limited 4-p
9 moon tr 1.4 fire ce xlt flex 2-p
をそして、私は、次のいずれかでそれを一致する必要があります。
table_match<-data.frame(brand=c('duna','cars','sea','mega','moon'),model=c('mm','mm','ll','tr','tr'),version=c('tdi','ls','xl','ls','xlt'))
table_match$id<-paste0(table_match$brand,table_match$model,table_match$version)
brand model version id
1 duna mm tdi dunammtdi
2 cars mm ls carsmmls
3 sea ll xl seallxl
4 mega tr ls megatrls
5 moon tr xlt moontrxlt
ので、ここでの問題は、brand
を一致させることです、 model
およびversion
からtable_match
からtable
までである。 brand=duna
、model=mm
とversion
は、正確な単語"tdi"
が含まれている場合、例えば
は、table
で、それはマッチングです!その一致があるid
(table_match
)は、version
の横に表示されます。
brand model version match
1 duna mm 2.8 sr cab. dupla 4x4 tdi dunammtdi
2 cars mm 2.0 lsdakar 16v 4x4 hi-flex 5-p
3 cars mm 2.4 ls cab. simples 4x2 flex 2-p carsmmls
4 sea ll 2.3 xl cab. simples 4x2 2-p seallxl
5 sea ll 1.8 sx 5-p
6 sea ll 1.0 mpfi joy 8v
7 mega tr hatch ls 1.0 8v megatrls
8 moon tr 2.3 xlt cab. dupla 4x2 limited 4-p moontrxlt
9 moon tr 1.4 fire ce xlt flex 2-p moontrxlt
提供された関数を使用して一致を実行するパッケージ 'fuzzyjoin'をご覧ください。 – epi99