retaining key during outer join
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 35/100
Research direction
Start by running the reproducible R example with data.table 1.14.0 and inspect the key after the outer join that includes the unmatched value 5. Compare the keyed and nomatch = NULL results; done means the key behavior is consistent for the unmatched-row case and any relevant regression is covered.
Written by the indexing model from the issue text.
Description
reported over email, quite possibly it is a duplicate of existing issue
#R 4.0.3
#data.table is 1.14.0
library(data.table)
x <- data.table(letter = c("a", "b", "a", "c", "d"),
number = c(1, NA, 3, 4, 5),
val = c(0, 0, 100, 300, 50))
setkey(x, letter, number)
key(x)
#[1] "letter" "number"
x[J("a", c(1, 3))]
# letter number val
#1: a 1 0
#2: a 3 100
key(x[J("a", c(1, 3))])
#[1] "letter" "number"
x[J("a", c(1, 3)), nomatch = NULL]
# letter number val
#1: a 1 0
#2: a 3 100
key(x[J("a", c(1, 3)), nomatch = NULL])
#[1] "letter" "number"
x[J("a", c(1, 3, 5))]
# letter number val
#1: a 1 0
#2: a 3 100
#3: a 5 NA
key(x[J("a", c(1, 3, 5))])
#NULL
#this is odd, as the key disappears
x[J("a", c(1, 3, 5)), nomatch = NULL]
# letter number val
#1: a 1 0
#2: a 3 100
key(x[J("a", c(1, 3, 5)), nomatch = NULL])
#[1] "letter" "number"
- 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 ·