[R] extraction of last observation date from many observations in each row/column

Sarah Goslee @@r@h@go@|ee @end|ng |rom gm@||@com
Fri Apr 2 16:31:51 CEST 2021


Hi Marna,

This very short function deletes everything before the last , if there
is a comma. Some of your entries have comma-space and some just have
comma, so it deletes the optional space as well.

lastdate <- function(x) {
  sub("^.*, *", "", x)
 }

data.frame(apply(daT, 2, lastdate))

Sarah

On Fri, Apr 2, 2021 at 10:15 AM Marna Wagley <marna.wagley using gmail.com> wrote:
>
> Dear R-Users,
> I have a dataset containing more than two observation dates in some of the
> columns and sites  but I wanted to extract only the last date of the
> observation.
> Is there any easiest way to get that last observation in each column/row?
>
> Here is the example data:
> daT<-structure(list(ID = c("M3", "M5", "M1"), Site1 =
> c("12/20/2018,12/28/2018",
> "12/17/18", ""), Site2 = c("", "", "1/19/2019"), Site3 = c("9/25/2019", "",
> "1/10/2019, 1/11/2019, 1/17/2019")), class = "data.frame", row.names =
> c(NA,-3L))
>
> #I wanted to make the table like this:
> output<-structure(list(ID = c("M3", "M5", "M1"), Site1 = c("12/28/2018",
> "12/7/2018", ""), Site2 = c("", "", "1/19/2019"), Site3 = c("9/25/2019",
>  "", "1/17/2019")), class = "data.frame", row.names = c(NA, -3L))
>
> Thank you for your help.
> Sincerely,
> MW
>
>         [[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.



-- 
Sarah Goslee (she/her)
http://www.numberwright.com



More information about the R-help mailing list