2016-06-27 21 views
0

df2の文字列をdf1の部分一致文字列に置き換える必要があります。文字列を一致する文字列に置き換えます

同様に、1MGソリューションはdf1に1MGを持っているため、df1から1MGに置き換える必要があります。 これは、100万レコードで実行する必要があります。最初のデータフレーム内のパターンのいずれかが第二中に存在する場合

> df1 
      A  
     1MG    
     ABOF   
     Amazon   
     American Swan 
     Clovia  

    > df2 


     A     B           
1MG Solution   1MG 
ABOF Prime    ABOF 
Dual Command   NA 
Amazon AWF    AMazon 
American Swan Fi  AMerican Swan 
Clovia World Spaces Clovia 
Shape Makers   NA 
Unions     NA 
+0

「grep」を使用できます – akrun

+0

私を表示できますか?私はちょうど初心者です:) –

+0

予想される出力は 'df2'の 'B'列ですか? – akrun

答えて

1

stringrパッケージには、このような操作のための理想的だと思います、

library(stringr) 
df2$B <- str_extract(df2$A, paste(df1$A, collapse = '|')) 
df2 
#     A    B 
#1  1MG Solution   1MG 
#2   ABOF Prime   ABOF 
#3  Dual Command   <NA> 
#4   Amazon AWF  Amazon 
#5 American Swan Fi American Swan 
#6 Clovia World Spaces  Clovia 
#7  Shape Makers   <NA> 
#8    Unions   <NA> 

注:変数を文字に変換する必要があります(要因の場合)

0

grep機能を使用することによって、あなたは見つけることができます。たとえば

df <- data.frame(A=c("1MG","ABOF","Amazon","American Swan","Clovia")) 
label=c("1MG Sol","ABOF Prim", 
"Dual Command","Amazon AWF","something else", 
"American Swan Fi","Clovia World Spaces") 
apply(df,1,function(x) grep(x,label)) #will return the matching postion 

適用する機能は、マッチング位置を返します。

> apply(df,1,function(x) grep(x,label)) 
[1] 1 2 4 6 7 

私はあなたがこの方法で解決策を見つけることができ

関連する問題