Internal error when column is type data.table
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 42/100
Research direction
Start by running the minimal R example in the issue and trace the DT[, FOO:=DT2] path into [.data.table. Check how a data.table RHS is handled and where the later DT$FOO[1] internal error originates. Done means the invalid multi-column assignment is rejected earlier with a clear error instead of producing the unsupported column.
Written by the indexing model from the issue text.
Description
Reported on email to me with a .Rdata supplied, thanks to Илья Сайтанов with permission to use name in news item. I created a MRE.
DT = data.table(A=1, B=2) # being 1-row may be significant
DT
# A B
# <num> <num>
# 1: 1 2
DT2 = data.table(C=3:4)
DT2
# C
# <int>
# 1: 3
# 2: 4
DT[, FOO:=DT2]
DT
# A B FOO
# <num> <num> <data.table>
# 1: 1 2 <multi-column>
# should be a warning/error before now that a 2-row data.table is now a column of a 1-row data.table
DT$FOO[1]
# Error in `[.data.table`(DT$FOO, 1) :
# Internal error: column type 'NULL' not supported by data.table subset. All known types are
# supported so please report as bug.
# an error is expected, but a better message than this would be good, and earlier.
I don't think we allow columns to be <multi-column>, so that itself should be prevented by := I'm thinking; i.e. the DT[, FOO:=DT2] should error with "RHS items cannot be type data.table"?
- 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 ·