Rui Barradas
2022-Jul-18 17:11 UTC
[R] Extract time and state of charge (Start and End) and Count
Hello, I'm not sure I understand the problem. Do you want counts of how many rows are there per hour? # these columns need to be fixed cols <- c("BatteryChargeStartDate", "BatteryChargeStopDate") dt_2014[cols] <- lapply(dt_2014[cols], \(x) sub("\n", " ", x)) # use package lubridate to coerce to a datetime class dt_2014[cols] <- lapply(dt_2014[cols], lubridate::dmy_hm) h <- lubridate::hour(dt_2014[["BatteryChargeStartDate"]]) aggregate(Starting_SoC_of_12 ~ h, dt_2014, length) It would be better if you post the expected output corresponding to the posted data set. Hope this helps, Rui Barradas ?s 05:04 de 18/07/2022, roslinazairimah zakaria escreveu:> Dear all, > > I have data of Battery Electric vehicle (BEV). I would like to extract data > from every hour starting from 0.00 to 0.59, 1:00-1:59 for SOC(state of > charge) start to end. > > Some examples: > I can extract data from SOC=0 and SOC=12 > dt_2014[which(dt_2014$Starting_SoC_of_12==0 & > dt_2014$Ending_SoC_of_12==12),] > > I can extract data from SOC=1 and SOC=12 > dt_2014[which(dt_2014$Starting_SoC_of_12==1 & > dt_2014$Ending_SoC_of_12==12),] > > and I would like to further categorise the data by hour and count how many > cars from 0 state charge to 12 state charge at in that particular hour. > > Thank you so much for any help given. > > Some data >> dput(dt_2014[1:10,]) > structure(list(?..CarID = c("GC10", "GC10", "GC10", "GC10", "GC10", > "GC10", "GC10", "GC10", "GC10", "GC10"), BatteryChargeStartDate > c("16/2/2014 16:05", > "16/2/2014 18:20", "17/2/2014 8:10", "18/2/2014 7:41", "18/2/2014 15:36", > "18/2/2014 16:36", "18/2/2014 21:26", "19/2/2014 8:57", "19/2/2014 21:08", > "20/2/2014 18:11"), BCStartTime = c("16:05", "18:20", "8:10", > "7:41", "15:36", "16:36", "21:26", "8:57", "21:08", "18:11"), > Year = c(2014L, 2014L, 2014L, 2014L, 2014L, 2014L, 2014L, > 2014L, 2014L, 2014L), Month = c(2L, 2L, 2L, 2L, 2L, 2L, 2L, > 2L, 2L, 2L), Day = c(16L, 16L, 17L, 18L, 18L, 18L, 18L, 19L, > 19L, 20L), BatteryChargeStopDate = c("16/2/2014 17:05", "16/2/2014 > 19:00", > "17/2/2014 15:57", "18/2/2014 9:52", "18/2/2014 15:39", "18/2/2014 > 17:36", > "19/2/2014 1:55", "19/2/2014 14:25", "20/2/2014 5:17", "20/2/2014 23:20" > ), BCStopTime = c("17:05", "19:00", "15:57", "9:52", "15:39", > "17:36", "1:55", "14:25", "5:17", "23:20"), Year2 = c(2014L, > 2014L, 2014L, 2014L, 2014L, 2014L, 2014L, 2014L, 2014L, 2014L > ), Month2 = c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), Day2 = c(16L, > 16L, 17L, 18L, 18L, 18L, 19L, 19L, 20L, 20L), Starting_SoC_of_12 > c(1L, > 2L, 4L, 5L, 4L, 2L, 8L, 8L, 4L, 8L), Ending_SoC_of_12 = c(11L, > 11L, 12L, 8L, 4L, 10L, 12L, 12L, 12L, 12L)), row.names = c(NA, > 10L), class = "data.frame") > >
@vi@e@gross m@iii@g oii gm@ii@com
2022-Jul-18 21:56 UTC
[R] Extract time and state of charge (Start and End) and Count
Rui, The posted data was likely not well chosen as it has no rows that satisfy what I thought was the requirement of going from 0 to 12. Questions here can often be written more clearly. We can all guess, but my guess was a bit like yours that he/she wanted to count how many rows there are per specific dates/hours (meaning up to 24 per day) that also satisfy a filter requirement. Of course, it is also possible that they do not care about what days, but want to know what happens any day between 9 and 10 Am and other possibilities. It would be nice if people who asked questions followed up so we stop wasting our time answering what was not asked! -----Original Message----- From: R-help <r-help-bounces at r-project.org> On Behalf Of Rui Barradas Sent: Monday, July 18, 2022 1:11 PM To: roslinazairimah zakaria <roslinaump at gmail.com>; R help Mailing list <r-help at r-project.org> Subject: Re: [R] Extract time and state of charge (Start and End) and Count Hello, I'm not sure I understand the problem. Do you want counts of how many rows are there per hour? # these columns need to be fixed cols <- c("BatteryChargeStartDate", "BatteryChargeStopDate") dt_2014[cols] <- lapply(dt_2014[cols], \(x) sub("\n", " ", x)) # use package lubridate to coerce to a datetime class dt_2014[cols] <- lapply(dt_2014[cols], lubridate::dmy_hm) h <- lubridate::hour(dt_2014[["BatteryChargeStartDate"]]) aggregate(Starting_SoC_of_12 ~ h, dt_2014, length) It would be better if you post the expected output corresponding to the posted data set. Hope this helps, Rui Barradas ?s 05:04 de 18/07/2022, roslinazairimah zakaria escreveu:> Dear all, > > I have data of Battery Electric vehicle (BEV). I would like to extract data > from every hour starting from 0.00 to 0.59, 1:00-1:59 for SOC(state of > charge) start to end. > > Some examples: > I can extract data from SOC=0 and SOC=12 > dt_2014[which(dt_2014$Starting_SoC_of_12==0 & > dt_2014$Ending_SoC_of_12==12),] > > I can extract data from SOC=1 and SOC=12 > dt_2014[which(dt_2014$Starting_SoC_of_12==1 & > dt_2014$Ending_SoC_of_12==12),] > > and I would like to further categorise the data by hour and count how many > cars from 0 state charge to 12 state charge at in that particular hour. > > Thank you so much for any help given. > > Some data >> dput(dt_2014[1:10,]) > structure(list(?..CarID = c("GC10", "GC10", "GC10", "GC10", "GC10", > "GC10", "GC10", "GC10", "GC10", "GC10"), BatteryChargeStartDate > c("16/2/2014 16:05", > "16/2/2014 18:20", "17/2/2014 8:10", "18/2/2014 7:41", "18/2/2014 15:36", > "18/2/2014 16:36", "18/2/2014 21:26", "19/2/2014 8:57", "19/2/2014 21:08", > "20/2/2014 18:11"), BCStartTime = c("16:05", "18:20", "8:10", > "7:41", "15:36", "16:36", "21:26", "8:57", "21:08", "18:11"), > Year = c(2014L, 2014L, 2014L, 2014L, 2014L, 2014L, 2014L, > 2014L, 2014L, 2014L), Month = c(2L, 2L, 2L, 2L, 2L, 2L, 2L, > 2L, 2L, 2L), Day = c(16L, 16L, 17L, 18L, 18L, 18L, 18L, 19L, > 19L, 20L), BatteryChargeStopDate = c("16/2/2014 17:05", "16/2/2014 > 19:00", > "17/2/2014 15:57", "18/2/2014 9:52", "18/2/2014 15:39", "18/2/2014 > 17:36", > "19/2/2014 1:55", "19/2/2014 14:25", "20/2/2014 5:17", "20/2/2014 23:20" > ), BCStopTime = c("17:05", "19:00", "15:57", "9:52", "15:39", > "17:36", "1:55", "14:25", "5:17", "23:20"), Year2 = c(2014L, > 2014L, 2014L, 2014L, 2014L, 2014L, 2014L, 2014L, 2014L, 2014L > ), Month2 = c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), Day2 = c(16L, > 16L, 17L, 18L, 18L, 18L, 19L, 19L, 20L, 20L), Starting_SoC_of_12 > c(1L, > 2L, 4L, 5L, 4L, 2L, 8L, 8L, 4L, 8L), Ending_SoC_of_12 = c(11L, > 11L, 12L, 8L, 4L, 10L, 12L, 12L, 12L, 12L)), row.names = c(NA, > 10L), class = "data.frame") > >______________________________________________ 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.
roslinazairimah zakaria
2022-Jul-19 08:53 UTC
[R] Extract time and state of charge (Start and End) and Count
Hi Rui, Yes, I would like to count for each hour, how many in the state of charge start 0 and SOC 12, then SOC 1 and SOC 12 and so on. Thank you for your help. On Tue, Jul 19, 2022 at 1:11 AM Rui Barradas <ruipbarradas at sapo.pt> wrote:> Hello, > > I'm not sure I understand the problem. Do you want counts of how many > rows are there per hour? > > > # these columns need to be fixed > cols <- c("BatteryChargeStartDate", "BatteryChargeStopDate") > dt_2014[cols] <- lapply(dt_2014[cols], \(x) sub("\n", " ", x)) > # use package lubridate to coerce to a datetime class > dt_2014[cols] <- lapply(dt_2014[cols], lubridate::dmy_hm) > > h <- lubridate::hour(dt_2014[["BatteryChargeStartDate"]]) > aggregate(Starting_SoC_of_12 ~ h, dt_2014, length) > > > > It would be better if you post the expected output corresponding to the > posted data set. > > Hope this helps, > > Rui Barradas > > ?s 05:04 de 18/07/2022, roslinazairimah zakaria escreveu: > > Dear all, > > > > I have data of Battery Electric vehicle (BEV). I would like to extract > data > > from every hour starting from 0.00 to 0.59, 1:00-1:59 for SOC(state of > > charge) start to end. > > > > Some examples: > > I can extract data from SOC=0 and SOC=12 > > dt_2014[which(dt_2014$Starting_SoC_of_12==0 & > > dt_2014$Ending_SoC_of_12==12),] > > > > I can extract data from SOC=1 and SOC=12 > > dt_2014[which(dt_2014$Starting_SoC_of_12==1 & > > dt_2014$Ending_SoC_of_12==12),] > > > > and I would like to further categorise the data by hour and count how > many > > cars from 0 state charge to 12 state charge at in that particular hour. > > > > Thank you so much for any help given. > > > > Some data > >> dput(dt_2014[1:10,]) > > structure(list(?..CarID = c("GC10", "GC10", "GC10", "GC10", "GC10", > > "GC10", "GC10", "GC10", "GC10", "GC10"), BatteryChargeStartDate > > c("16/2/2014 16:05", > > "16/2/2014 18:20", "17/2/2014 8:10", "18/2/2014 7:41", "18/2/2014 15:36", > > "18/2/2014 16:36", "18/2/2014 21:26", "19/2/2014 8:57", "19/2/2014 > 21:08", > > "20/2/2014 18:11"), BCStartTime = c("16:05", "18:20", "8:10", > > "7:41", "15:36", "16:36", "21:26", "8:57", "21:08", "18:11"), > > Year = c(2014L, 2014L, 2014L, 2014L, 2014L, 2014L, 2014L, > > 2014L, 2014L, 2014L), Month = c(2L, 2L, 2L, 2L, 2L, 2L, 2L, > > 2L, 2L, 2L), Day = c(16L, 16L, 17L, 18L, 18L, 18L, 18L, 19L, > > 19L, 20L), BatteryChargeStopDate = c("16/2/2014 17:05", "16/2/2014 > > 19:00", > > "17/2/2014 15:57", "18/2/2014 9:52", "18/2/2014 15:39", "18/2/2014 > > 17:36", > > "19/2/2014 1:55", "19/2/2014 14:25", "20/2/2014 5:17", "20/2/2014 > 23:20" > > ), BCStopTime = c("17:05", "19:00", "15:57", "9:52", "15:39", > > "17:36", "1:55", "14:25", "5:17", "23:20"), Year2 = c(2014L, > > 2014L, 2014L, 2014L, 2014L, 2014L, 2014L, 2014L, 2014L, 2014L > > ), Month2 = c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), Day2 = c(16L, > > 16L, 17L, 18L, 18L, 18L, 19L, 19L, 20L, 20L), Starting_SoC_of_12 > > c(1L, > > 2L, 4L, 5L, 4L, 2L, 8L, 8L, 4L, 8L), Ending_SoC_of_12 = c(11L, > > 11L, 12L, 8L, 4L, 10L, 12L, 12L, 12L, 12L)), row.names = c(NA, > > 10L), class = "data.frame") > > > > >-- *Roslinazairimah Zakaria* *Tel: +609-5492370; Fax. No.+609-5492766* *Email: roslinazairimah at ump.edu.my <roslinazairimah at ump.edu.my>; roslinaump at gmail.com <roslinaump at gmail.com>* Faculty of Industrial Sciences & Technology University Malaysia Pahang Lebuhraya Tun Razak, 26300 Gambang, Pahang, Malaysia [[alternative HTML version deleted]]