Skip to content

move from warning to breaking change in melt/dcast #6629

@tdhock

Description

@tdhock

v1.16.0 NEWS says that two new warnings may be changed in a future release into backwards-incompatible changes, for consistency:

  1. ?melt has long documented that the returned variable column should contain integer column indices when measure.vars is a list, but when the list length is 1, variable is actually a character column name, which is inconsistent with the documentation, #5209. To increase consistency in the next release, we plan to change variable to integer, so users who were relying on this behavior should change measure.vars=list("col_name") (variable currently is a column name but will be a column index/integer after this planned change) to measure.vars="col_name" (variable is column name before and after the planned change). For now, relying on this undocumented behavior throws a new warning.

  2. ?dcast has always required fun.aggregate to return a single value, and when fill=NULL, dcast would indeed error if a vector with length!=1 was returned, but an undefined result was silently returned for non-NULL fill. Now dcast() will additionally warn that this is undefined behavior when fill is not NULL, #6032. In particular, this will warn for fun.aggregate=identity, which was observed in several revdeps. We may change this to an error in a future release, so revdeps should fix their code as soon as possible. Thanks to @tdhock for the PR, and @MichaelChirico for analysis of GitHub revdeps.

Metadata

Metadata

Assignees

Labels

breaking-changeissues whose solution would require breaking existing behaviorconsistencyreshapedcast melt

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions