0

I am currently trying to merge two dataframes that have the following format:

`Company Name` Date                `Press Release`
  <chr>          <dttm>              <chr>          
1 ExxonMobil     2021-05-27 00:00:00 Mena Report    
2 Shell          2021-05-27 00:00:00 Mena Report    
3 JPMorgan       2021-05-27 00:00:00 Mena Report    
4 Shell          NA                  DeSmogBlog     
5 ExxonMobil     NA                  DeSmogBlog     
6 ExxonMobil     2021-04-20 00:00:00 The Guardian   

and

Date     `Equity Price` `Company Name`
  <chr>             <dbl> <chr>         
1 07/30/21           153. JPMorgan      
2 07/29/21           153  JPMorgan      
3 07/28/21           152. JPMorgan      
4 07/27/21           151. JPMorgan      
5 07/26/21           152. JPMorgan      
6 07/23/21           151. JPMorgan   

I need to merge them by 'Date', but I can not convert the 'Date' format of the second dataset into POSIXct POSIXt. I already tried to run the following code, but it does not go:

n.equity <- as.POSIXct(equity$Date)
```
zork1
  • 69
  • 5

1 Answers1

0

You have to apply a format, In your case:

n.equity <- as.POSIXlt(equity$Date, format = "%m/%d/%y") Output:

[1] "2021-07-30 CEST" "2021-07-29 CEST" "2021-07-28 CEST" "2021-07-27 CEST"
[5] "2021-07-26 CEST" "2021-07-23 CEST"

Here is complete example how you can do it with the lubridate package:

library(lubridate)
library(dyplr)

df1 <- df1 %>% 
    mutate(Date = ymd_hms(Date))
df2 <- df2 %>% 
    mutate(Date = mdy(Date))

df1 %>% 
    full_join(df2, by="Date") 

output:

# A tibble: 12 x 5
   `Company Name.x` Date                `Press Release` `Equity Price` `Company Name.y`
   <chr>            <dttm>              <chr>                    <dbl> <chr>           
 1 ExxonMobil       2021-05-27 00:00:00 Mena Report                 NA NA              
 2 Shell            2021-05-27 00:00:00 Mena Report                 NA NA              
 3 JPMorgan         2021-05-27 00:00:00 Mena Report                 NA NA              
 4 Shell            NA                  DeSmogBlog                  NA NA              
 5 ExxonMobil       NA                  DeSmogBlog                  NA NA              
 6 ExxonMobil       2021-04-20 00:00:00 The Guardian                NA NA              
 7 NA               2021-07-30 00:00:00 NA                         153 JPMorgan        
 8 NA               2021-07-29 00:00:00 NA                         153 JPMorgan        
 9 NA               2021-07-28 00:00:00 NA                         152 JPMorgan        
10 NA               2021-07-27 00:00:00 NA                         151 JPMorgan        
11 NA               2021-07-26 00:00:00 NA                         152 JPMorgan        
12 NA               2021-07-23 00:00:00 NA                         151 JPMorgan  

data

df1 <- tribble(
~`Company Name`, ~Date,                ~`Press Release`,
"ExxonMobil",     "2021-05-27 00:00:00", "Mena Report",   
"Shell",          "2021-05-27 00:00:00", "Mena Report",    
"JPMorgan",       "2021-05-27 00:00:00", "Mena Report",    
"Shell",          "NA",                  "DeSmogBlog",
"ExxonMobil",     "NA",                  "DeSmogBlog",
"ExxonMobil",     "2021-04-20 00:00:00", "The Guardian")


df2 <- tribble(
~Date,     ~`Equity Price`, ~`Company Name`,
"07/30/21",          153., "JPMorgan",     
"07/29/21",          153,  "JPMorgan",      
"07/28/21",          152., "JPMorgan",     
"07/27/21",          151., "JPMorgan",      
"07/26/21",          152., "JPMorgan",     
"07/23/21",          151., "JPMorgan") 
TarJae
  • 72,363
  • 6
  • 19
  • 66