Time outside limits

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Time outside limits

Bart Joosen
Hi,
I'm currently facing the problem that I need to write a function where I get a dataframe back which contains the time (in hours) outside the limits of a temperature sensor, each month, and for how long exactly.
I wrote a for loop which check:- if a datapoint is outside the limit- if the previous datapoint is outside the limt, then count + 1- if the next datapoint isn't outside: write in dataframe.
I guess this could be with some vectorisation function, I tried with seq_along, and match, but couldn't figure it out.
Here some sample data:
y <- c(rnorm(10,25), rnorm(10,32),rnorm(10,25), rnorm(10,20), rnorm(10,25))x <- seq(c(ISOdate(2000,3,20)), by = "hour", length.out = length(y))
limits of y: c(22,27)
Thanks
Bart    
        [[alternative HTML version deleted]]

______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: Time outside limits

daniel-2
Bart,

Check if the following could help you.

library(xts)
y <- c(rnorm(10,25), rnorm(10,32),rnorm(10,25), rnorm(10,20),
rnorm(10,25)); x <- seq(c(ISOdate(2000,3,20)), by = "hour", length.out =
length(y))
z <- xts( y, order.by=as.POSIXct(x))
limit <- ifelse( lag(z) < 22 | z > 27, 1, 0)


Daniel Merino

2014-10-16 15:12 GMT-03:00 Bart Joosen <[hidden email]>:

> Hi,
> I'm currently facing the problem that I need to write a function where I
> get a dataframe back which contains the time (in hours) outside the limits
> of a temperature sensor, each month, and for how long exactly.
> I wrote a for loop which check:- if a datapoint is outside the limit- if
> the previous datapoint is outside the limt, then count + 1- if the next
> datapoint isn't outside: write in dataframe.
> I guess this could be with some vectorisation function, I tried with
> seq_along, and match, but couldn't figure it out.
> Here some sample data:
> y <- c(rnorm(10,25), rnorm(10,32),rnorm(10,25), rnorm(10,20),
> rnorm(10,25))x <- seq(c(ISOdate(2000,3,20)), by = "hour", length.out =
> length(y))
> limits of y: c(22,27)
> Thanks
> Bart
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> [hidden email] 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.
>



--
Daniel

        [[alternative HTML version deleted]]

______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: Time outside limits

Clint Bowman
?rle

Clint Bowman INTERNET: [hidden email]
Air Quality Modeler INTERNET: [hidden email]
Department of Ecology VOICE: (360) 407-6815
PO Box 47600 FAX: (360) 407-7534
Olympia, WA 98504-7600

         USPS:           PO Box 47600, Olympia, WA 98504-7600
         Parcels:        300 Desmond Drive, Lacey, WA 98503-1274

On Thu, 16 Oct 2014, daniel wrote:

> Bart,
>
> Check if the following could help you.
>
> library(xts)
> y <- c(rnorm(10,25), rnorm(10,32),rnorm(10,25), rnorm(10,20),
> rnorm(10,25)); x <- seq(c(ISOdate(2000,3,20)), by = "hour", length.out =
> length(y))
> z <- xts( y, order.by=as.POSIXct(x))
> limit <- ifelse( lag(z) < 22 | z > 27, 1, 0)
>
>
> Daniel Merino
>
> 2014-10-16 15:12 GMT-03:00 Bart Joosen <[hidden email]>:
>
>> Hi,
>> I'm currently facing the problem that I need to write a function where I
>> get a dataframe back which contains the time (in hours) outside the limits
>> of a temperature sensor, each month, and for how long exactly.
>> I wrote a for loop which check:- if a datapoint is outside the limit- if
>> the previous datapoint is outside the limt, then count + 1- if the next
>> datapoint isn't outside: write in dataframe.
>> I guess this could be with some vectorisation function, I tried with
>> seq_along, and match, but couldn't figure it out.
>> Here some sample data:
>> y <- c(rnorm(10,25), rnorm(10,32),rnorm(10,25), rnorm(10,20),
>> rnorm(10,25))x <- seq(c(ISOdate(2000,3,20)), by = "hour", length.out =
>> length(y))
>> limits of y: c(22,27)
>> Thanks
>> Bart
>>         [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> [hidden email] 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.
>>
>
>
>
> --
> Daniel
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> [hidden email] 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.
>

______________________________________________
[hidden email] 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.