I'm trying to convert a column in a data frame with dates from a "Factor" type to a "Date Object" but I am encountering and error. (I am having trouble plotting an x,y scatter and I suspect it's something with my data format). I have a table with two columns and 8,000 rows.> dsort=read.delim("C:\\Documents and Settings\\E066582\\MyDocuments\\R\\R-2.13.0\\bin\\dsort.txt") "dsort" #name of data.frame> colnames(dsort)[1] #name of column 1[1] "Date"> colnames(dsort)[2] #name of column 2[1] "Qty"> class(dsort$Date) #checked data type of column"Date" and it came back as a factor [1] "factor"> Date2=as.Date(dsort$Date) #attempt at changing the data type from afactor to a date object (see error below). Error in charToDate(x) : character string is not in a standard unambiguous format Dates in my table are listed in "3/4/2007" format. StatBat2 [[alternative HTML version deleted]]
Hi Nat, I guess something like as.Date(as.character("3/4/2007"),format="%d/%m/%Y") should work - as.character() coerces the factors to characters, which the as.Date() function can work with, given the right format argument. HTH Stephan Am 01.06.2011 22:59, schrieb Struckmeier, Nathanael:> I'm trying to convert a column in a data frame with dates from a > "Factor" type to a "Date Object" but I am encountering and error. (I am > having trouble plotting an x,y scatter and I suspect it's something with > my data format). I have a table with two columns and 8,000 rows. > >> dsort=read.delim("C:\\Documents and Settings\\E066582\\My > Documents\\R\\R-2.13.0\\bin\\dsort.txt") > > > > "dsort" #name of > data.frame > >> colnames(dsort)[1] #name of column 1 > > [1] "Date" > >> colnames(dsort)[2] #name of column 2 > > [1] "Qty" > >> class(dsort$Date) #checked data type of column > "Date" and it came back as a factor > > [1] "factor" > >> Date2=as.Date(dsort$Date) #attempt at changing the data type from a > factor to a date object (see error below). > > Error in charToDate(x) : > > character string is not in a standard unambiguous format > > > > Dates in my table are listed in "3/4/2007" format. > > StatBat2 > > > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >
On Jun 1, 2011, at 3:59 PM, Struckmeier, Nathanael wrote:> I'm trying to convert a column in a data frame with dates from a > "Factor" type to a "Date Object" but I am encountering and error. (I am > having trouble plotting an x,y scatter and I suspect it's something with > my data format). I have a table with two columns and 8,000 rows. > >> dsort=read.delim("C:\\Documents and Settings\\E066582\\My > Documents\\R\\R-2.13.0\\bin\\dsort.txt") > > > > "dsort" #name of > data.frame > >> colnames(dsort)[1] #name of column 1 > > [1] "Date" > >> colnames(dsort)[2] #name of column 2 > > [1] "Qty" > >> class(dsort$Date) #checked data type of column > "Date" and it came back as a factor > > [1] "factor" > >> Date2=as.Date(dsort$Date) #attempt at changing the data type from a > factor to a date object (see error below). > > Error in charToDate(x) : > > character string is not in a standard unambiguous format > > > > Dates in my table are listed in "3/4/2007" format. > > StatBat2After seeing your subject line and your e-mail address, I was going to suggest a dozen roses and some Moose Munch... ;-) When you convert a character/factor to a Date, you need to specify the format of the object to be converted:> as.Date("3/4/2007", format = "%m/%d/%Y")[1] "2007-03-04" See ?as.Date and ?strptime for more information and format specifications. HTH, Marc Schwartz