`plot` inside `j` with `by` fails when `x` and `y` are different data types

Open
#7,050 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
45/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
r

Research direction

Start by running the minimal reproducible examples in the issue with data.table 1.17.4, comparing grouped j evaluation with and without the id filter. Trace the grouped plot call to identify why mixed numeric and integer x/y values produce unequal lengths; done means both failing examples plot without warnings and have regression coverage.

Written by the indexing model from the issue text.

Description

consistency

# [Minimal reproducible example]

library(data.table)

# the following behave as expected
data.table(x = 1:100, y = 100:1, id = sample(5, 100, 1))[,plot(x, y), id]
data.table(x = as.numeric(1:100), y = as.numeric(100:1), id = sample(5, 100, 1))[,plot(x, y), id]
data.table(x = as.numeric(1:100), y = 100:1, id = sample(5, 100, 1))[id == 1, plot(x, y), id]
data.table(x = 1:100, y = as.numeric(100:1), id = sample(5, 100, 1))[id == 1, plot(x, y), id]

# the following fail to plot and return warning messages about unequal lengths
data.table(x = as.numeric(1:100), y = 100:1, id = sample(5, 100, 1))[,plot(x, y), id]
data.table(x = 1:100, y = as.numeric(100:1), id = sample(5, 100, 1))[,plot(x, y), id]

# Output of sessionInfo()
R version 4.4.3 (2025-02-28 ucrt)
Platform: x86_64-w64-mingw32/x64
Running under: Windows 11 x64 (build 22631)

Matrix products: default

locale:
[1] LC_COLLATE=English_United States.utf8 LC_CTYPE=English_United States.utf8 LC_MONETARY=English_United States.utf8
[4] LC_NUMERIC=C LC_TIME=English_United States.utf8

time zone: America/New_York
tzcode source: internal

attached base packages:
[1] stats graphics grDevices utils datasets methods base

other attached packages:
[1] data.table_1.17.4

loaded via a namespace (and not attached):
[1] compiler_4.4.3 tools_4.4.3 rstudioapi_0.17.1

Dominant language
R
Stars
3.9k
Forks
1.1k
Avg merge
14h 4m
Merged PRs (30d)
4

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Rdatatable/data.table

All issues in Rdatatable/data.table

Similar issues

More R issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.