rolling join keeps only one `on` column, takes name from x table and values from i table
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
Research direction
Start with the reproducible R example and the rolling-join entry point x[y, roll = "nearest", on = .(x2 = y2)]. Investigate how the join selects and names the matching columns, then define and verify behavior that preserves both columns or uses the original-value column name.
Written by the indexing model from the issue text.
Description
This got me very confused :
library(data.table)
x <- data.table(x1=letters[1:3], x2=c(10,20,30))
y <- data.table(y1=letters[4:6], y2=c(11,21,31))
y2 <- x[y, roll = "nearest", on = .(x2 = y2)]
y2
#> x1 x2 y1
#> 1: a 11 d
#> 2: b 21 e
#> 3: c 31 f
I would much prefer to keep both x2 and y2, and if we must keep only one column I would much rather have the column name fit the original values.
The workaround I found looks quite awful, can I do better ?
x_ <- copy(x)
x_[, x3 := x2]
y2 <- x_[y, roll = "nearest", on = .(x3 = y2)]
y2[, y2 := x3]
y2[, x3 := NULL]
rm(x_)
y2
#> x1 x2 y1 y2
#> 1: a 10 d 11
#> 2: b 20 e 21
#> 3: c 30 f 31
- 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 ·