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

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

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

Marna Wagley
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]]

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

Re: extraction of last observation date from many observations in each row/column

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

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