I might be wrong, but I think that some versions ago data.table was able to handle complex numbers (#3690). In the CRAN version, I see that I can't dcast when value.var points to a complex vector.
library(data.table)
dt <- CJ(x = 1:10, y = letters[1:3])
dt[, z := complex(real = rnorm(.N), imaginary = rnorm(.N))]
dcast(dt, x ~ y, value.var = "z")
#> Error in dcast.data.table(dt, x ~ y, value.var = "z"): Unsupported column type in fcast val: 'complex'
Expected output:
reshape2::dcast(dt, x ~ y, value.var = "z")
#> x a b c
#> 1 1 -1.3488967+1.1481185i -0.5222023-0.3259327i -0.5009616-0.7509642i
#> 2 2 -1.9949708+0.2536504i -1.3369498-0.4085785i 0.2366162+1.8662590i
#> 3 3 0.6624376+0.1975880i 0.5939629+1.0406464i -0.3498065+0.4978450i
#> 4 4 -0.0458679-1.3673610i 0.9238121-1.2469855i -0.4311840-2.3883511i
#> 5 5 -0.2211641+0.7137510i -1.4004275-0.8080942i 1.2348086-0.2340012i
#> 6 6 0.0606991-1.8565303i -0.8888768+0.9388083i 0.3308363+0.1521898i
#> 7 7 -0.6501890-0.6649984i -1.0598468-0.2198247i 1.4283844-0.9732736i
#> 8 8 -0.1287399-0.4475324i -0.3761322-0.0362629i -1.7031317-0.3632172i
#> 9 9 0.0497523+2.0927461i -0.9403378-1.7611338i 1.1598990-0.3927210i
#> 10 10 -1.5632296-1.5896036i -0.5649199+0.0777556i 0.0734752-1.4180248i
Created on 2020-12-18 by the reprex package (v0.3.0)
Session info
devtools::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#> setting value
#> version R version 4.0.3 (2020-10-10)
#> os elementary OS 5.1.7 Hera
#> system x86_64, linux-gnu
#> ui X11
#> language en_GB:en
#> collate en_GB.UTF-8
#> ctype en_GB.UTF-8
#> tz America/Argentina/Buenos_Aires
#> date 2020-12-18
#>
#> ─ Packages ───────────────────────────────────────────────────────────────────
#> package * version date lib source
#> assertthat 0.2.1 2019-03-21 [1] CRAN (R 4.0.3)
#> callr 3.5.1 2020-10-13 [1] CRAN (R 4.0.3)
#> cli 2.2.0 2020-11-20 [1] CRAN (R 4.0.3)
#> crayon 1.3.4.9000 2020-11-11 [1] Github (r-lib/crayon@4bceba8)
#> data.table * 1.13.4 2020-12-08 [1] CRAN (R 4.0.3)
#> desc 1.2.0 2018-05-01 [1] CRAN (R 4.0.2)
#> devtools 2.3.2 2020-09-18 [1] CRAN (R 4.0.2)
#> digest 0.6.27 2020-10-24 [1] CRAN (R 4.0.3)
#> ellipsis 0.3.1 2020-05-15 [1] RSPM (R 4.0.2)
#> evaluate 0.14 2019-05-28 [1] CRAN (R 4.0.2)
#> fansi 0.4.1 2020-01-08 [1] CRAN (R 4.0.2)
#> fs 1.5.0 2020-07-31 [1] CRAN (R 4.0.2)
#> glue 1.4.2 2020-08-27 [1] CRAN (R 4.0.2)
#> highr 0.8 2019-03-20 [1] CRAN (R 4.0.2)
#> htmltools 0.5.0.9003 2020-11-25 [1] Github (rstudio/htmltools@636b95e)
#> knitr 1.30.2 2020-11-25 [1] Github (yihui/knitr@a00710b)
#> magrittr 2.0.1 2020-11-17 [1] CRAN (R 4.0.3)
#> memoise 1.1.0 2017-04-21 [1] CRAN (R 4.0.2)
#> pkgbuild 1.1.0 2020-07-13 [1] CRAN (R 4.0.2)
#> pkgload 1.1.0 2020-05-29 [1] CRAN (R 4.0.2)
#> plyr 1.8.6 2020-03-03 [1] RSPM (R 4.0.2)
#> prettyunits 1.1.1 2020-01-24 [1] CRAN (R 4.0.2)
#> processx 3.4.5 2020-11-30 [1] CRAN (R 4.0.3)
#> ps 1.5.0 2020-12-05 [1] CRAN (R 4.0.3)
#> R6 2.5.0 2020-10-28 [1] CRAN (R 4.0.3)
#> Rcpp 1.0.5 2020-07-06 [1] CRAN (R 4.0.2)
#> remotes 2.2.0 2020-07-21 [1] CRAN (R 4.0.2)
#> reshape2 1.4.4 2020-04-09 [1] RSPM (R 4.0.2)
#> rlang 0.4.8.9002 2020-11-25 [1] Github (r-lib/rlang@b4e28cb)
#> rmarkdown 2.5 2020-10-21 [1] CRAN (R 4.0.3)
#> rprojroot 2.0.2 2020-11-15 [1] CRAN (R 4.0.3)
#> sessioninfo 1.1.1 2018-11-05 [1] CRAN (R 4.0.2)
#> stringi 1.5.3 2020-09-09 [1] CRAN (R 4.0.2)
#> stringr 1.4.0 2019-02-10 [1] CRAN (R 4.0.2)
#> testthat 3.0.0.9000 2020-11-23 [1] Github (r-lib/testthat@45a9c70)
#> usethis 1.6.3 2020-09-17 [1] CRAN (R 4.0.2)
#> withr 2.3.0 2020-09-22 [1] CRAN (R 4.0.3)
#> xfun 0.19 2020-10-30 [1] CRAN (R 4.0.3)
#> yaml 2.2.1 2020-02-01 [1] CRAN (R 4.0.2)
#>
#> [1] /home/elio/R/x86_64-pc-linux-gnu-library/4.0
#> [2] /usr/local/lib/R/site-library
#> [3] /usr/lib/R/site-library
#> [4] /usr/lib/R/library
I might be wrong, but I think that some versions ago data.table was able to handle complex numbers (#3690). In the CRAN version, I see that I can't
dcastwhenvalue.varpoints to a complex vector.Expected output:
Created on 2020-12-18 by the reprex package (v0.3.0)
Session info