[R] subset of obersevation depending on multiple conditions

Frede Aakmann Tøgersen frtog at vestas.com
Mon Apr 28 14:27:31 CEST 2014


Hi

Here is a very simple way.


mydat <- read.table(text="
Date    N
2010-01-01    0
2010-01-02    1.9
2010-01-03    0
2010-01-04    0
2010-01-05    1.6
2010-01-06    0
2010-01-07    0.3
2010-01-08    0
2010-01-09    1.1
2010-01-10    1.7
2010-01-11    2.6
2010-01-12    0
2010-01-13    0
2010-01-14    0
2010-01-15    0
2010-01-16    0
2010-01-17    0
2010-01-18    0.2
2010-01-19    0
2010-01-20    0
2010-01-21    0
2010-01-22    0
2010-01-23    0
2010-01-24    0
2010-01-25    0
2010-01-26    0
2010-01-27    1.9
2010-01-28    6.2
2010-01-29    0
2010-01-30    0", sep = "", h = TRUE)

mydat$NdayBefore <- c(NA, mydat[-nrow(mydat), "N"])

head(mydat)

subset(mydat, N <= 0.3)

subset(mydat, N <= 0.3 & NdayBefore <= 0.3)

Yours sincerely / Med venlig hilsen


Frede Aakmann Tøgersen
Specialist, M.Sc., Ph.D.
Plant Performance & Modeling

Technology & Service Solutions
T +45 9730 5135
M +45 2547 6050
frtog at vestas.com
http://www.vestas.com

Company reg. name: Vestas Wind Systems A/S
This e-mail is subject to our e-mail disclaimer statement.
Please refer to www.vestas.com/legal/notice
If you have received this e-mail in error please contact the sender. 


> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org]
> On Behalf Of Christoph Schlächter
> Sent: 28. april 2014 10:38
> To: r-help at r-project.org
> Subject: [R] subset of obersevation depending on multiple conditions
> 
> Hello,
> 
> I want to subset a data.frame containing the variables "Date" in (%Y %m %d
> ) and "N".
> 
> I want to print "Date" and "N" if  N is less than or equal to 0.3 and if
> "N" is also less than or equal to 0.3 on the day before the day where "N"
> is less than or equal to 0.3.
> 
> This would be the case in line 3 and 4 , 6 and 7, 12 to 18, and so on.
> 
> "Date"    "N"
> "1"    2010-01-01    0
> "2"    2010-01-02    1.9
> "3"    2010-01-03    0
> "4"    2010-01-04    0
> "5"    2010-01-05    1.6
> "6"    2010-01-06    0
> "7"    2010-01-07    0.3
> "8"    2010-01-08    0
> "9"    2010-01-09    1.1
> "10"    2010-01-10    1.7
> "11"    2010-01-11    2.6
> "12"    2010-01-12    0
> "13"    2010-01-13    0
> "14"    2010-01-14    0
> "15"    2010-01-15    0
> "16"    2010-01-16    0
> "17"    2010-01-17    0
> "18"    2010-01-18    0.2
> "19"    2010-01-19    0
> "20"    2010-01-20    0
> "21"    2010-01-21    0
> "22"    2010-01-22    0
> "23"    2010-01-23    0
> "24"    2010-01-24    0
> "25"    2010-01-25    0
> "26"    2010-01-26    0
> "27"    2010-01-27    1.9
> "28"    2010-01-28    6.2
> "29"    2010-01-29    0
> "30"    2010-01-30    0
> 
> I tried some methods with subset but I couldn't work it out. Maybe I have
> to use something like " for (i in x) {} but as a beginner I really don't
> know how to do it.
> 
> Can somebody please help me with this.
> 
> Thanks in advance,
> 
> Christoph
> 
> 	[[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.



More information about the R-help mailing list