Thanks Duncan for the quick response. I will check again as you suggested. If that doesn't work i will share a reproducible example. Thanks again!!!! On Tue, Jul 26, 2016 at 4:43 PM, Duncan Murdoch <murdoch.duncan at gmail.com> wrote:> On 26/07/2016 7:05 AM, Shivi Bhatia wrote: > >> Hi Team, >> >> This scenario may have come across a number of times however i checked >> nabble & SO and couldn't find a solution hence request assistance. >> >> I have a date variable in my data-set eir. The class of this var was >> character while i had read the file in r studio. Example of date - >> 05-30-16 >> >> To change this i have used eir$date<- as.Date(eir$date, "%m-%d-%y"). This >> converts it to a date variable. However when i check few obs >> with head(eir$date) all the results are <NA>. >> > > I think you don't have character data like that, because I see > > > as.Date("05-30-16", "%m-%d-%y") > [1] "2016-05-30" > > I'd guess eir$date is really a factor, because character data is > frequently changed to factor automatically. If that's the case, this > should work for the conversion: > > as.Date(as.character(eir$date), "%m-%d-%y") > > If that doesn't work, you'll need to post something reproducible. > > Duncan Murdoch > > I also need to create weekdays from this date variable but until i get this >> resolved i cant find a weekday. For weekday i have used: >> eir$week<- (eir$date) >> eir$week<- weekdays(as.Date(eir$week)) >> class(eir$week) >> eir$week<- as.factor(eir$week) >> head(eir$week) >> >> Head of this eir$week results again as expected in <NA> but shows Levels: >> Friday Monday Saturday Sunday Thursday Tuesday Wednesday >> >> Not sure what i should do here. Kindly suggest. >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> 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. >> >> >[[alternative HTML version deleted]]
Hello Again, While i tried your solution as you suggested above it seems to be working. Here is the output temp<- dput(head(eir$date)) c("05-30-16", "05-30-16", "05-30-16", "05-30-16", "05-30-16", "05-30-16") however it still shows class(eir$date) as character and hence i cannot find weekdays from this variable. Sorry but i still dont understand in totality how R reads dates even though have tried enough. Regards, Shivi On Tue, Jul 26, 2016 at 5:12 PM, Shivi Bhatia <shivipmp82 at gmail.com> wrote:> Thanks Duncan for the quick response. I will check again as you suggested. > If that doesn't work i will share a reproducible example. > > Thanks again!!!! > > On Tue, Jul 26, 2016 at 4:43 PM, Duncan Murdoch <murdoch.duncan at gmail.com> > wrote: > >> On 26/07/2016 7:05 AM, Shivi Bhatia wrote: >> >>> Hi Team, >>> >>> This scenario may have come across a number of times however i checked >>> nabble & SO and couldn't find a solution hence request assistance. >>> >>> I have a date variable in my data-set eir. The class of this var was >>> character while i had read the file in r studio. Example of date - >>> 05-30-16 >>> >>> To change this i have used eir$date<- as.Date(eir$date, "%m-%d-%y"). This >>> converts it to a date variable. However when i check few obs >>> with head(eir$date) all the results are <NA>. >>> >> >> I think you don't have character data like that, because I see >> >> > as.Date("05-30-16", "%m-%d-%y") >> [1] "2016-05-30" >> >> I'd guess eir$date is really a factor, because character data is >> frequently changed to factor automatically. If that's the case, this >> should work for the conversion: >> >> as.Date(as.character(eir$date), "%m-%d-%y") >> >> If that doesn't work, you'll need to post something reproducible. >> >> Duncan Murdoch >> >> I also need to create weekdays from this date variable but until i get >>> this >>> resolved i cant find a weekday. For weekday i have used: >>> eir$week<- (eir$date) >>> eir$week<- weekdays(as.Date(eir$week)) >>> class(eir$week) >>> eir$week<- as.factor(eir$week) >>> head(eir$week) >>> >>> Head of this eir$week results again as expected in <NA> but shows Levels: >>> Friday Monday Saturday Sunday Thursday Tuesday Wednesday >>> >>> Not sure what i should do here. Kindly suggest. >>> >>> [[alternative HTML version deleted]] >>> >>> ______________________________________________ >>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >>> 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. >>> >>> >> >[[alternative HTML version deleted]]
Hi, That eir$date might be a factor is irrelevant. There is an as.Date() method for factors, which does the factor to character coercion internally and then calls as.Date.character() on the result. Using the example data below: eir <- data.frame(date = c("05-30-16", "05-30-16", "05-30-16", "05-30-16", "05-30-16", "05-30-16"))> str(eir)'data.frame': 6 obs. of 1 variable: $ date: Factor w/ 1 level "05-30-16": 1 1 1 1 1 1> eirdate 1 05-30-16 2 05-30-16 3 05-30-16 4 05-30-16 5 05-30-16 6 05-30-16 eir$date <- as.Date(eir$date, format = "%m-%d-%y")> str(eir)'data.frame': 6 obs. of 1 variable: $ date: Date, format: "2016-05-30" ...> eirdate 1 2016-05-30 2 2016-05-30 3 2016-05-30 4 2016-05-30 5 2016-05-30 6 2016-05-30 eir$days <- weekdays(eir$date)> str(eir)'data.frame': 6 obs. of 2 variables: $ date: Date, format: "2016-05-30" ... $ days: chr "Monday" "Monday" "Monday" "Monday" ...> eirdate days 1 2016-05-30 Monday 2 2016-05-30 Monday 3 2016-05-30 Monday 4 2016-05-30 Monday 5 2016-05-30 Monday 6 2016-05-30 Monday I would check to be sure that you do not have any typos in your code. Regards, Marc Schwartz> On Jul 26, 2016, at 6:58 AM, Shivi Bhatia <shivipmp82 at gmail.com> wrote: > > Hello Again, > > While i tried your solution as you suggested above it seems to be working. > Here is the output > temp<- dput(head(eir$date)) > c("05-30-16", "05-30-16", "05-30-16", "05-30-16", "05-30-16", "05-30-16") > however it still shows class(eir$date) as character and hence i cannot find > weekdays from this variable. > > Sorry but i still dont understand in totality how R reads dates even though > have tried enough. > > Regards, Shivi > > > On Tue, Jul 26, 2016 at 5:12 PM, Shivi Bhatia <shivipmp82 at gmail.com> wrote: > >> Thanks Duncan for the quick response. I will check again as you suggested. >> If that doesn't work i will share a reproducible example. >> >> Thanks again!!!! >> >> On Tue, Jul 26, 2016 at 4:43 PM, Duncan Murdoch <murdoch.duncan at gmail.com> >> wrote: >> >>> On 26/07/2016 7:05 AM, Shivi Bhatia wrote: >>> >>>> Hi Team, >>>> >>>> This scenario may have come across a number of times however i checked >>>> nabble & SO and couldn't find a solution hence request assistance. >>>> >>>> I have a date variable in my data-set eir. The class of this var was >>>> character while i had read the file in r studio. Example of date - >>>> 05-30-16 >>>> >>>> To change this i have used eir$date<- as.Date(eir$date, "%m-%d-%y"). This >>>> converts it to a date variable. However when i check few obs >>>> with head(eir$date) all the results are <NA>. >>>> >>> >>> I think you don't have character data like that, because I see >>> >>>> as.Date("05-30-16", "%m-%d-%y") >>> [1] "2016-05-30" >>> >>> I'd guess eir$date is really a factor, because character data is >>> frequently changed to factor automatically. If that's the case, this >>> should work for the conversion: >>> >>> as.Date(as.character(eir$date), "%m-%d-%y") >>> >>> If that doesn't work, you'll need to post something reproducible. >>> >>> Duncan Murdoch >>> >>> I also need to create weekdays from this date variable but until i get >>>> this >>>> resolved i cant find a weekday. For weekday i have used: >>>> eir$week<- (eir$date) >>>> eir$week<- weekdays(as.Date(eir$week)) >>>> class(eir$week) >>>> eir$week<- as.factor(eir$week) >>>> head(eir$week) >>>> >>>> Head of this eir$week results again as expected in <NA> but shows Levels: >>>> Friday Monday Saturday Sunday Thursday Tuesday Wednesday >>>> >>>> Not sure what i should do here. Kindly suggest.
You still seem to be having problems, so where is the promised reproducible example? Dan Daniel Nordlund, PhD Research and Data Analysis Division Services & Enterprise Support Administration Washington State Department of Social and Health Services> -----Original Message----- > From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of Shivi > Bhatia > Sent: Tuesday, July 26, 2016 4:43 AM > To: Duncan Murdoch > Cc: r-help at r-project.org > Subject: Re: [R] Date Time in R > > Thanks Duncan for the quick response. I will check again as you suggested. > If that doesn't work i will share a reproducible example. > > Thanks again!!!! > > On Tue, Jul 26, 2016 at 4:43 PM, Duncan Murdoch > <murdoch.duncan at gmail.com> > wrote: > > > On 26/07/2016 7:05 AM, Shivi Bhatia wrote: > > > >> Hi Team, > >> > >> This scenario may have come across a number of times however i > >> checked nabble & SO and couldn't find a solution hence request > assistance. > >> > >> I have a date variable in my data-set eir. The class of this var was > >> character while i had read the file in r studio. Example of date - > >> 05-30-16 > >> > >> To change this i have used eir$date<- as.Date(eir$date, "%m-%d-%y"). > >> This converts it to a date variable. However when i check few obs > >> with head(eir$date) all the results are <NA>. > >> > > > > I think you don't have character data like that, because I see > > > > > as.Date("05-30-16", "%m-%d-%y") > > [1] "2016-05-30" > > > > I'd guess eir$date is really a factor, because character data is > > frequently changed to factor automatically. If that's the case, this > > should work for the conversion: > > > > as.Date(as.character(eir$date), "%m-%d-%y") > > > > If that doesn't work, you'll need to post something reproducible. > > > > Duncan Murdoch > > > > I also need to create weekdays from this date variable but until i get > > this > >> resolved i cant find a weekday. For weekday i have used: > >> eir$week<- (eir$date) > >> eir$week<- weekdays(as.Date(eir$week)) > >> class(eir$week) > >> eir$week<- as.factor(eir$week) > >> head(eir$week) > >> > >> Head of this eir$week results again as expected in <NA> but shows > Levels: > >> Friday Monday Saturday Sunday Thursday Tuesday Wednesday > >> > >> Not sure what i should do here. Kindly suggest. > >> > >> [[alternative HTML version deleted]] > >> > >> ______________________________________________ > >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > >> 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. > >> > >> > > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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.