So Christoph now have 3 methods giving him three different results. Of course it is not really clear what Christoph really wants ;-)
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 fr...@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-boun...@r-project.org [mailto:r-help-boun...@r-project.org] > On Behalf Of arun > Sent: 28. april 2014 13:58 > To: R. Help > Subject: Re: [R] subset of obersevation depending on multiple conditions > > Hi, > > The conditions are not very clear. Based on the rows you wanted to pick, > may be this helps, > > #It is better to dput() the example. > > dat <- structure(list(Date = structure(c(14610, 14611, 14612, 14613, > 14614, 14615, 14616, 14617, 14618, 14619, 14620, 14621, 14622, > 14623, 14624, 14625, 14626, 14627, 14628, 14629, 14630, 14631, > 14632, 14633, 14634, 14635, 14636, 14637, 14638, 14639), class = "Date"), > N = c(0, 1.9, 0, 0, 1.6, 0, 0.3, 0, 1.1, 1.7, 2.6, 0, 0, > 0, 0, 0, 0, 0.2, 0, 0, 0, 0, 0, 0, 0, 0, 1.9, 6.2, 0, 0)), .Names = > c("Date", > "N"), row.names = c("1", "2", "3", "4", "5", "6", "7", "8", "9", > "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", > "21", "22", "23", "24", "25", "26", "27", "28", "29", "30"), class = > "data.frame") > > > indx <- with(dat, N <=0.3) > > rowInd <- unlist(lapply(split(seq_along(indx), cumsum(c(TRUE, diff(indx) == > 1))), function(x) { > x1 <- indx[x] > x2 <- with(dat, N[x]) > x3 <- if (length(x2[x1]) > 1) > !cumsum(c(0, diff(x2[x1])) < 0) > x[c(x3, rep(FALSE, length(x2) - length(x3)))] > }), use.names = FALSE) > rowInd > # [1] 3 4 6 7 12 13 14 15 16 17 18 29 30 > dat[rowInd,] > > > > A.K. > > > 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 > > > ______________________________________________ > R-help@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. ______________________________________________ R-help@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.