[R] Converting a Date variable from character to Date

@vi@e@gross m@iii@g oii gm@ii@com @vi@e@gross m@iii@g oii gm@ii@com
Fri Sep 30 01:37:36 CEST 2022


I am not replying to the earlier request just to the part right below my
message.

A simple suggestion when sending people code is to add NOTHING except proper
comments.

Can we assume the extra asterisks are superfluous and not in your code?

I mean your column is named "Period" and not "*Period" and your meaningless
call to format(...) was not to *format(...)* ...

And I note in R upper and lower case are not interchangeable. CPI as a
column name does not match:

	class(inflation.2$cpi)

I am not clear what the above is supposed to do. What do you want to set the
class of a column in a data.frame to? If I am guessing correctly, the normal
way people do a change from one TYPE to another looks more like:

after <- as.character(before)

In your case, your data is of type character and you want to make it a date
of one kind or another. If you do a little searching, you may find a bunch
of ways to convert properly formatted strings to dates or date/time types.
Your data is NOT a standard date format so none of the standard ones will
work.

I am guessing  "2022m1" may mean first month in 2022 and goes as high as
2022m12 before shifting to 2023. Good luck with that. It is far easier if
your data looked like "2022-01-01" or some such format that might be read
easily. You need to do one of many things I will not show here to break that
date into parts or have it parsed properly as with a function like
strptime() using a package. 

As a general comment, I hope your meaning of command line is within the R in
interpreter rather than other meanings like for some shell utility.

And note that generally the R method of handling a data.frame using base R
or a package like dplyr requires most changes to be saved into the same or a
new variable. Your sample code makes no sense to me. 

So assuming at some point your code got the data you want into a data.frame
with a character column called inflation.1$Period, then base R would allow
you to call some function that does the conversion, which I am calling
doit() here) this way:

inflation.1$Period <- doit(inflation.1$Period)

Good Luck. You need to show a bit more knowledge of R before people can help
you with more advanced tasks.


-----Original Message-----
From: R-help <r-help-bounces using r-project.org> On Behalf Of Admire Tarisirayi
Chirume
Sent: Thursday, September 29, 2022 12:36 PM
To: Jeff Newmiller <jdnewmil using dcn.davis.ca.us>
Cc: r-help mailing list <r-help using r-project.org>
Subject: [R] Converting a Date variable from character to Date

Kindly request assistance to *convert a Date variable from a character to be
recognized as a date*.
NB: kindly take note that the data is in a csv file called *inflation*. I
have included part of the file content herewith with the header for
assistance.


My data looks like this:
*Period            CPI*
2022m1         4994
2022m2         5336
2022m3         5671
2022m4         6532
2022m5         7973
2022m6        10365
2022m7        12673
2022m8        14356
2022m9        14708

 I used the following command lines.


class(inflation.2$cpi)
inflation.2$cpi <- as.numeric(as.character(inflation.2$cpi))
*format(as.Date(inflation.2$period), "%Y-%m")*

Having run the command lines above, the variable *period* in the attached
CSV file remains being read as a character variable. Kindly assist.

Thank you.


Alternative email: addtarris using icloud.com/TChirume using rbz.co.zw
Skype: admirechirume
Call: +263773369884
whatsapp: +818099861504



More information about the R-help mailing list