How to change from character to date format? [duplicate] - r

This question already has answers here:
Convert string to date, format: "dd.mm.yyyy"
(4 answers)
What are the "standard unambiguous date" formats for string-to-date conversion in R?
(8 answers)
Closed 3 months ago.
For my dataset, the Date variable has dates in the format of this example: 19-Feb-03
I want to change the above character format dates in the column to a Date format. (As I have to do time series analysis later on)
I tried using the as.Date() method but it didn't work.

x <- '19-Feb-03'
lubridate::ymd(x)
"2019-02-03"

Not sure whether 19 is year or day. You can try lubridate package
x<-"19-Feb-03"
library(lubridate)
ymd(x)
dmy(x)

Related

Convert month-year to date format in r [duplicate]

This question already has answers here:
Converting year and month ("yyyy-mm" format) to a date?
(9 answers)
Closed 1 year ago.
I have a date that is in the this format:
chr [1:56] "Sep-2016" "Oct-2016" "Nov-2016" "Dec-2016" "Jan-2017" "Feb-2017" "Mar-2017" "Apr-2017"
I tried as.Date(Dates, "%b-%Y") and got NA for all the values. For some reason I have tried multiple ways and using different format but it is still not working. I am looking to get it into either 09-2016, 10-2016 or just simply turn it into a date format.
Any help is much appreciated!
Date class needs a day as well. Easiest is to convert to yearmon class from zoo and then coerce it to Date, which adds a dummy day
library(zoo)
as.Date(as.yearmon(Dates, '%b-%Y'))
or in base R, paste a day and convert
as.Date(paste0(Dates, '-01'), '%b-%Y-%d')

Converting YY/MM/DD to MM/DD/YY in R [duplicate]

This question already has answers here:
How to convert date to format "yyyy-mm-dd" in R when input value can be of different formats
(3 answers)
Change Date print format from yyyy-mm-dd to dd-mm-yyyy
(2 answers)
Closed 2 years ago.
I need to find the difference in days between 2 date columns, but one of them is in the format of "6/16/2019" and the other is in the format of "2019-02-25". Not sure which one would be easier to convert to which, but would like to get end result in days. Which I know how to do. I would appreciate help converting the second yyyy-mm-dd to mm-dd-yyyy.
We can use functions from the lubridate package to convert the different formats to dates, and then subtract.
rawData <- "date1,date2
2002-05-15,6/16/2019
2019-12-31,4/15/2020"
data <- read.csv(text = rawData,stringsAsFactors = FALSE)
library(lubridate)
mdy(data$date2) - ymd(data$date1)
...and the output:
> mdy(data$date2) - ymd(data$date1)
Time differences in days
[1] 6241 106
>

Converting string formatted date to as.Date dd/mm/yyyy to dd-mm-yyyy in r [duplicate]

This question already has answers here:
Convert date-time string to class Date
(4 answers)
Convert string to date, format: "dd.mm.yyyy"
(4 answers)
Closed 2 years ago.
still fairly new to r. I have searched through the forum on different solutions that don't work on the data set that i have and what output i'm trying to achieve.
I have a column containing dates in the format dd/mm/yyyy (WorkoutDay) and would like to format it to dd-mm-yyyy.
running as.date function through the column gives me this output:
## example date in on of the columns "20/03/2020"
rd$WokoutDay <- as.Date(rd$WorkoutDay)
##output 0031-03-20
I tried to run a format function through but I get this instead which is also not what I'm after.
rd$WorkoutDay <- as.Date(rd$WorkoutDay) %>%
format("%d-%m-%y")
## output 20-03-31
I've read that maybe strptime or as.POSIXct might help but not sure how to use them
thanks in advance :)

How to convert mmm-yy(Jan-85) date format into yyyy-mm--dd (1985-01-02)date format in R? [duplicate]

This question already has an answer here:
format year-month to POSIXct [duplicate]
(1 answer)
Closed 3 years ago.
I want to convert mmm-yy(Jan-85) date format into yyyy-mm-dd (1985-01-02)date format in R.
One option is to paste the day and convert it to Date class with as.Date and the appropriate format
as.Date(paste0("Jan-85", "-02"), "%b-%y-%d")
#[1] "1985-01-02"

How to convert character in yyyy-mm format to date r [duplicate]

This question already has answers here:
Converting year and month ("yyyy-mm" format) to a date?
(9 answers)
Get the difference between dates in terms of weeks, months, quarters, and years
(9 answers)
Closed 4 years ago.
I transformed a date in the yyyy-mm-dd format to the yyyy-mm format using the following command:
format(as.Date(DATE, "%Y-%m-%d"), "%Y-%m")
This works but it returns a character. I want to further use this as a date, so I want to transform this character back to a date class. Using the as.Date() function gives me the error:
Error in charToDate(x) : character string is not in a standard unambiguous format
Does anyone know how to solve this problem?
Update: In the end I want to determine the number of months between two dates in the format yyyy-mm. Does anyone knows how to do this without transforming the characters back to date class?
I had once the same problem and unfortunately the only solution I found was to keep format YYYY-mm-dd with dd==01...
Here is part of the code if you want:
DATE <- str_c(DATE,"-01") df$date <- as.Date(DATE,format="%Y-%m-%d")

Resources