[R] filter() question

Jeff Newmiller jdnewm|| @end|ng |rom dcn@d@v|@@c@@u@
Fri Aug 21 14:45:11 CEST 2020


Using mutate followed by summarise in this case is completely unnecessary.

a <- (   lDf
     %>% dplyr::group_by( Provider )
     %>% dplyr::summarise( u = min( CollectionDate )
                         ,, v = max( CollectionDate )
                         )
     )

On August 21, 2020 2:41:26 AM PDT, Eric Berger <ericjberger using gmail.com> wrote:
>Hi Eberhard,
>Here is one possibility using dplyr.
>
>library(dplyr)
>set.seed(3)
>
>## set up some fake data
>dtV <- as.Date("2020-08-01") + 0:4
>x <- sample(dtV,20,repl=TRUE)
>provider <- sample(LETTERS[1:3],20,repl=TRUE)
>lDf <-
>data.frame(Provider=provider,CollectionDate=x,stringsAsFactors=FALSE)
>
>## get min/max date for each provider
>a <- lDf %>% dplyr::group_by( Provider ) %>%
>dplyr::mutate( minDt=min(CollectionDate), maxDt=max(CollectionDate))
>%>%
>  dplyr::summarize( u = min(minDt), v = max(maxDt) )
>
>## get the common interval
>c(max(a$u), min(a$v))
>
># [1] "2020-08-02" "2020-08-04"
>
>HTH,
>Eric
>
>
>On Fri, Aug 21, 2020 at 12:34 PM Rasmus Liland <jral using posteo.no> wrote:
>
>> On 2020-08-21 09:03 +0200, Dr Eberhard Lisse wrote:
>> > Hi,
>> >
>> > I have a small test sample with lab
>> > reports (PAP smears) from a number of
>> > different providers.  These have
>> > Collection Dates and the relevant
>> > columns glimpse() something like
>> > this:
>> >
>> > $ Provider       <chr> "Dr C", "Dr D", "Dr C", "Dr D"
>> > $ CollectionDate <chr> "2016-11-03", "2016-11-02", "2016-11-03",
>> "2016-11-03"
>> >
>> > I am looking to find (filter) the
>> > reports which were collected in the
>> > time period common to all providers?
>> >
>> > Something like
>> >
>> >        the largest First Common CollectionDate
>> > and
>> >        the smallest Last Common CollectionDate
>> >
>> > How would I do that?
>> >
>> > I can of course do this "manually", ie
>> > collect all Providers and their first
>> > and last Collection dates and then
>> > find the Common First and Last one,
>> > but wonder if there is an elegant way
>> > of doing this :-)-O
>>
>> Dear Eberhard,
>>
>> Is each report in a csv file with those
>> two columns, and you want to unify them
>> into a dataframe with CollectionDate
>> along the rows, and other details for
>> each provider along the columns?  This
>> can be done with various apply calls and
>> reshape.  Can you please subset some
>> more example data here using dput.  It
>> makes it so much easier.
>>
>> /Rasmus
>> ______________________________________________
>> R-help using 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 using 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.

-- 
Sent from my phone. Please excuse my brevity.



More information about the R-help mailing list