zizamuft
zizamuft

Reputation: 93

how to use left join to combine 2 dataframe with specific output

1 have 2 dataframe it looks like

df1


Store_type  Total_Amount   prod_subcat_code 
<chr>       <dbl>          <int>     
e-Shop      4265.300       4
e-Shop      8270.925       1
TeleShop    1748.110       3
e-Shop      4518.345       1
e-Shop      2568.020       3

and df2

prod_cat_code   prod_cat                   prod_sub_cat_code   prod_subcat
<chr>           <chr>                      <int>               <chr>
1               Clothing                   4                   Mens 
1               Clothing                   1                   Women    
1               Clothing                   3                   Kids 
2               Footwear                   1                   Mens 
2               Footwear                   3                   Women    

what if I want to use left_join so that my dataframe looks like

df3

Store_type  prod_cat   prod_subcat_code  Total_amount 
<chr>       <chr>      <int>             <dbl>
e-shop      Clothing   4                 4265.300

^^a table contanin 4 columns in order^^

i have tried running

df1 %>% 
  left_join(select(df2, Store_type, prod_cat, prod_subcat, Total_amount,
  by =c("prod_subcat_code"="prod_sub_cat_code")))

Upvotes: 1

Views: 42

Answers (2)

TarJae
TarJae

Reputation: 79204

One way could be:

df1 %>% 
    left_join(df2, by=c("prod_subcat_code"="prod_sub_cat_code")) %>% 
    select(Store_type, prod_cat, prod_subcat_code, Total_Amount) %>% 
    filter(prod_subcat_code == 4) 

Output:

  Store_type prod_cat prod_subcat_code Total_Amount
  <chr>      <chr>               <dbl>        <dbl>
1 e-Shop     Clothing                4        4265.

Upvotes: 1

MonJeanJean
MonJeanJean

Reputation: 2906

Please provide a data sample using dput.

Otherwise, this should work:

left_join(df1,
          df2 %>% 
            select(-prod_cat_code, - prod_subcat),
          by = c("prod_subcat_code" = "prod_sub_cat_code")) %>% 
  relocate(Store_type,  prod_cat, prod_subcat_code, Total_amout)

Upvotes: 0

Related Questions