Hello,

I'm reposting, I sent the previous in HTML format.
My apologies, I'm not at my computers.

And another solution, taking advantage of Rasmus' one:


simplify2array(parallel::mclapply(c(
 "%Y",
 "%m",
 "%d",
 "%H"), function(fmt, x) {
 as.integer(format(as.POSIXct(x), format = fmt))
}, x = dta$forecast.date))
#     [,1] [,2] [,3] [,4]
#[1,] 2020    8    1   12
#[2,] 2020    8    1   12
#[3,] 2020    8    1   12
#[4,] 2020    8    1   12
#[5,] 2020    8    1   12



The data set dta is Jeff's, it's in dput format.

Hope this helps,

Rui Barradas



Às 22:54 de 02/08/2020, Rui Barradas escreveu:
Hello,

And another solution, taking advantage of Rasmus' one:



simplify2array(parallel::mclapply(c(
  � "%Y",
  � "%m",
  � "%d",
  � "%H"), function(fmt, x) {
  ��� as.integer(format(as.POSIXct(x), format = fmt))
}, x = dta$forecast.date))
#���� [,1] [,2] [,3] [,4]
#[1,] 2020��� 8��� 1�� 12
#[2,] 2020��� 8��� 1�� 12
#[3,] 2020��� 8��� 1�� 12
#[4,] 2020��� 8��� 1�� 12
#[5,] 2020��� 8��� 1�� 12


The data set dta is Jeff's, it's in dput format.

Hope this helps,

Rui Barradas

�s 18:26 de 02/08/2020, Rasmus Liland escreveu:
On 2020-08-02 09:24 -0700, Philip wrote:
| Below is some Weather Service data.  I
| would like to parse the forecast date
| field into four different columns:
| Year, Month, Day, Hour

Dear Philip,

I'm largely re-iterating Eric and Jeff's
excellent solutions:

        > dat <- structure(list(forecast.date =
        + c("2020-08-01 12:00:00",
        + "2020-08-01 12:00:00",
        + "2020-08-01 12:00:00",
        + "2020-08-01 12:00:00",
        + "2020-08-01 12:00:00"
        + ), TMP = c("305.495", "305.245",
        + "305.057", "305.745", "305.495"
        + )), row.names = c(NA, 5L),
        + class = "data.frame")
        > t(apply(simplify2array(
        +   strsplit(dat$forecast.date, "-| |:")),
        +   2, as.numeric))
             [,1] [,2] [,3] [,4] [,5] [,6]
        [1,] 2020    8    1   12    0    0
        [2,] 2020    8    1   12    0    0
        [3,] 2020    8    1   12    0    0
        [4,] 2020    8    1   12    0    0
        [5,] 2020    8    1   12    0    0
        > simplify2array(parallel::mclapply(c(
        +   lubridate::year,
        +   lubridate::month,
        +   lubridate::day,
        +   lubridate::hour), function(FUN, x) {
        +     FUN(x)
        +   }, x=dat$forecast.date))
             [,1] [,2] [,3] [,4]
        [1,] 2020    8    1   12
        [2,] 2020    8    1   12
        [3,] 2020    8    1   12
        [4,] 2020    8    1   12
        [5,] 2020    8    1   12

V

r

______________________________________________
R-help@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.



______________________________________________
R-help@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.


--
Este e-mail foi verificado em termos de vírus pelo software antivírus Avast.
https://www.avast.com/antivirus

______________________________________________
R-help@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.

Reply via email to