I have a dataframe that looks like the below. I want to convert the Captured.Time field to a date object. but some of the entries are not properly formated and I get a message saying Error in as.POSIXlt.character(as.character(x), ...) : character string is not in a standard unambiguous format. So I want to write a function that will convert or delete. I could not figure out how to do that and so I tried to write a function that would convert or replace with text like noDateHere but that did not work either. Can anyone tell me how to accomplish this? Here is what I tried: convertOrOmit=function(dt){tryCatch(as.POSIXct(dt),error=print("noDateHere"))} X Captured.Time Latitude Longitude Value Unit Location.Name 1 12696963 2012-08-07 11:00:51 39.16094 140.4883 45 cpm 2 2056198 2013-11-10 03:14:19 32.84428 -117.2240 47 cpm 3 727957 2014-01-28 04:47:54 35.80605 139.3789 28 cpm 4 2864220 2013-10-22 19:41:53 35.07816 -106.6123 50 cpm 5 5787688 2013-06-13 04:13:57 35.83174 136.2027 35 cpm 6 6191345 2013-05-28 06:48:34 34.78944 137.9496 32 cpm Device.ID MD5Sum Height Surface Radiation 1 NA b0465019b46289b82450c39ce1397b98 NA NA 2 NA 8fa14a1227d23e6cf286785e8843cc39 NA NA 3 NA c72cd7f9cedd59cf6e6892049dfbf9a0 NA NA 4 NA aca82e39ff9098e45eea04f661f68dc7 NA NA 5 NA cc9394e6dceb91f0e0de97cc2db57e19 NA NA 6 NA f18d194a41e1448c7776dbeba8b351af NA NA Uploaded.Time Loader.ID 1 2012-08-13 19:16:10.18555 10832 2 2013-12-05 01:47:24.154971 13958 3 2014-01-29 22:55:39.138043 14451 4 2013-10-26 13:50:17.629869 13743 5 2013-06-16 16:17:21.148239 12930 6 2013-06-04 23:31:55.455323 12841 [[alternative HTML version deleted]]
Hello, Could you provide an example of unproperly formatted entry? Regards, Pascal On 27 February 2014 15:03, Bill <william108 at gmail.com> wrote:> I have a dataframe that looks like the below. I want to convert the > Captured.Time field to a date object. but some of the entries are not > properly formated and I get a message saying > Error in as.POSIXlt.character(as.character(x), ...) : > character string is not in a standard unambiguous format. > > So I want to write a function that will convert or delete. I could not > figure out how to do that and so I tried to write a function that would > convert or replace with text like noDateHere but that did not work either. > Can anyone tell me how to accomplish this? > Here is what I tried: > > convertOrOmit=function(dt){tryCatch(as.POSIXct(dt),error=print("noDateHere"))} > > X Captured.Time Latitude Longitude Value Unit Location.Name > 1 12696963 2012-08-07 11:00:51 39.16094 140.4883 45 cpm > 2 2056198 2013-11-10 03:14:19 32.84428 -117.2240 47 cpm > 3 727957 2014-01-28 04:47:54 35.80605 139.3789 28 cpm > 4 2864220 2013-10-22 19:41:53 35.07816 -106.6123 50 cpm > 5 5787688 2013-06-13 04:13:57 35.83174 136.2027 35 cpm > 6 6191345 2013-05-28 06:48:34 34.78944 137.9496 32 cpm > Device.ID MD5Sum Height Surface Radiation > 1 NA b0465019b46289b82450c39ce1397b98 NA NA > 2 NA 8fa14a1227d23e6cf286785e8843cc39 NA NA > 3 NA c72cd7f9cedd59cf6e6892049dfbf9a0 NA NA > 4 NA aca82e39ff9098e45eea04f661f68dc7 NA NA > 5 NA cc9394e6dceb91f0e0de97cc2db57e19 NA NA > 6 NA f18d194a41e1448c7776dbeba8b351af NA NA > Uploaded.Time Loader.ID > 1 2012-08-13 19:16:10.18555 10832 > 2 2013-12-05 01:47:24.154971 13958 > 3 2014-01-29 22:55:39.138043 14451 > 4 2013-10-26 13:50:17.629869 13743 > 5 2013-06-16 16:17:21.148239 12930 > 6 2013-06-04 23:31:55.455323 12841 > > [[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.-- Pascal Oettli Project Scientist JAMSTEC Yokohama, Japan
> Error in as.POSIXlt.character(as.character(x), ...) : > character string is not in a standard unambiguous format.That error occurs when as.POSIXlt is looking for a format with which to parse the strings. If you supply a format for the date then as.POSIXlt will not give this error - it will just return NA's for the entries that do not match the format. > as.POSIXlt(c("2013-02-28", "Feb 28, 2013")) Error in as.POSIXlt.character(c("2013-02-28", "Feb 28, 2013")) : character string is not in a standard unambiguous format > as.POSIXlt(c("2013-02-28", "Feb 28, 2013"), format="%Y-%m-%d") [1] "2013-02-28" NA > as.POSIXlt(c("2013-02-28", "Feb 28, 2013"), format="%B %d, %Y") [1] NA "2013-02-28" If the strings may be in one of several formats, loop through the formats and decide which to accept. Bill Dunlap TIBCO Software wdunlap tibco.com> -----Original Message----- > From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf > Of Bill > Sent: Wednesday, February 26, 2014 10:03 PM > To: r-help at r-project.org > Subject: [R] write function to convert to date or delete > > I have a dataframe that looks like the below. I want to convert the > Captured.Time field to a date object. but some of the entries are not > properly formated and I get a message saying > Error in as.POSIXlt.character(as.character(x), ...) : > character string is not in a standard unambiguous format. > > So I want to write a function that will convert or delete. I could not > figure out how to do that and so I tried to write a function that would > convert or replace with text like noDateHere but that did not work either. > Can anyone tell me how to accomplish this? > Here is what I tried: > > convertOrOmit=function(dt){tryCatch(as.POSIXct(dt),error=print("noDateHere"))} > > X Captured.Time Latitude Longitude Value Unit Location.Name > 1 12696963 2012-08-07 11:00:51 39.16094 140.4883 45 cpm > 2 2056198 2013-11-10 03:14:19 32.84428 -117.2240 47 cpm > 3 727957 2014-01-28 04:47:54 35.80605 139.3789 28 cpm > 4 2864220 2013-10-22 19:41:53 35.07816 -106.6123 50 cpm > 5 5787688 2013-06-13 04:13:57 35.83174 136.2027 35 cpm > 6 6191345 2013-05-28 06:48:34 34.78944 137.9496 32 cpm > Device.ID MD5Sum Height Surface Radiation > 1 NA b0465019b46289b82450c39ce1397b98 NA NA > 2 NA 8fa14a1227d23e6cf286785e8843cc39 NA NA > 3 NA c72cd7f9cedd59cf6e6892049dfbf9a0 NA NA > 4 NA aca82e39ff9098e45eea04f661f68dc7 NA NA > 5 NA cc9394e6dceb91f0e0de97cc2db57e19 NA NA > 6 NA f18d194a41e1448c7776dbeba8b351af NA NA > Uploaded.Time Loader.ID > 1 2012-08-13 19:16:10.18555 10832 > 2 2013-12-05 01:47:24.154971 13958 > 3 2014-01-29 22:55:39.138043 14451 > 4 2013-10-26 13:50:17.629869 13743 > 5 2013-06-16 16:17:21.148239 12930 > 6 2013-06-04 23:31:55.455323 12841 > > [[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.