I'm having some trouble working with the as.Date
function in R. I have a vector of dates that I'm reading in from a .csv file that are coming in as a factor of integers or as character (depending on how I read in the file, but this doesn't seem to have anything to do with the issue), formatted as %m/%d/%Y
.
I'm going through the file row by row, pulling out the date field and trying to convert it for use elsewhere using the following code:
tmpDtm <- as.Date(as.character(tempDF$myDate), "%m/%d/%Y")
This seems to give me what I want, for example, if I do this to a starting value of 12/30/2014, I get the value "2014-12-30"
returned. However, if I examine this value using typeof()
, R tells me that it its data type is 'double'. Additionally, if I try to bind this to other values and store it in a data frame using c()
or cbind()
, in the data frame, it winds up being stored as 16434, which looks to me like some sort of different internal storage value of a date. I'm pretty sure that's what it is too because if I try to convert that value again using as.Date()
, it throws an error asking for an origin.
So, two questions: Is this as expected? If so, is there a more appropriate way to convert a date so that I actually end up with a date-typed object?
Thank you
c()
orcbind()
it to? Are you aware, that all entries of a vector must be of the same type? – Libbclass
instead oftypeof
. The former seems to returnDate
while the latter returnsdouble
. – Rihanac()
andcbind()
coerce the value? What does the integer date represent exactly? What is the difference betweentypeof
andclass
? Are there other date objects not subject to this coercion? – MarticaDates are represented as the number of days since 1970-01-01, with negative values for earlier dates.
– Libb