S4 class inheriting from data table: ":=" gives a confusing error message
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
Research direction
Reproduce the S4/data.table example in the issue and inspect the behavior of is.data.table, :=, and the related discussion in #1881. Determine the intended handling for S4 subclasses and define a diagnostic or behavior that correctly addresses this case; completion should include a verified result for the supplied example.
Written by the indexing model from the issue text.
Description
I have an S4 class that inherits from data.table:
setClass("Foo", contains="data.table")
The Foo objects are data.tables, at least according to is.data.table:
a <- new("Foo", data.table(x=1))
is.data.table(a)
[1] TRUE
a[,y := x+1]
Error in `:=`(y, x + 1) :
Check that is.data.table(DT) == TRUE. Otherwise, := and `:=`(...) are defined for use in j, once only and in particular ways. See help(":=").
This issue is probably related to #1881 although the related queries are different and the error message does not suggest suggest a check that seems to be correct. I could not find anything relevant neither in NEWS nor on SO (https://stackoverflow.com/questions/46137134/how-can-data-table-can-be-inherited-by-an-object-of-a-subclass-of-data-tabl and https://stackoverflow.com/questions/32206351/how-to-use-data-table-as-super-class-in-s4 are somewhat related).
I'd be happy to take a look, but I feel the S4 side of data.table needs a bit more directions/planning before an outsider like someone jumps to coding.
Thanks,
Ott
sessionInfo:
sessionInfo()
R version 3.4.3 (2017-11-30)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 16.04.3 LTS
Matrix products: default
BLAS: /usr/lib/libblas/libblas.so.3.6.0
LAPACK: /usr/lib/lapack/liblapack.so.3.6.0
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8
[6] LC_MESSAGES=en_US.UTF-8 LC_PAPER=en_US.UTF-8 LC_NAME=C LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] data.table_1.10.4 dplyr_0.7.2
loaded via a namespace (and not attached):
[1] Rcpp_0.12.12 lattice_0.20-35 assertthat_0.2.0 grid_3.4.3 R6_2.2.2 magrittr_1.5 rlang_0.1.2 sp_1.2-5
[9] bindrcpp_0.2 rgdal_1.2-12 tools_3.4.3 glue_1.1.1 compiler_3.4.3 pkgconfig_2.0.1 bindr_0.1 tibble_1.3.3
- Dominant language
- R
- Stars
- 3.9k
- Forks
- 1.1k
- Avg merge
- 14h 4m
- Merged PRs (30d)
- 4
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Rdatatable/data.table
-
as.data.table() recurses without end on a survival::Surv object (or any data.frame carrying one) Open
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Rdatatable/data.table#7887 ·
-
consistency tests
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Rdatatable/data.table#7853 · 3 comments ·
-
internals
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
Rdatatable/data.table#6938 · 1 comment ·
-
encoding fread
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
Rdatatable/data.table#5179 · 8 comments ·
-
documentation programming
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Rdatatable/data.table#3199 · 3 comments ·
All issues in Rdatatable/data.table
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
r-lib/pkgdepends#485 · 3 comments ·
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
-
beginners blocker
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
enviPathR OpenBuild Error Build OK Build Warning policies-accepted pre-review precheck-passed
Difficulty 1/5 Under an hour Newbie friendliness 84/100
Bioconductor/BiocContributions#207 · 6 comments ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
datacarpentry/semester-biology#1255 ·