Briefly, there are 3 situations by which a value can become NA in a discrete scale.
The data value is NA.
The data value does not match the scale limits.
The data value is mapped to NA because a palette value is NA.
Currently, we cannot distinguish between situation (2) and situation (3).
This PR ensures that situation (1) and (2) are laundered through the na.translate/na.value mechanism, but (3) is not because we could assume (3) is intentional by users (see issue).
As a demo, notice that 'e' gets NA due to (3) and is subsequently removed, while 'r' gets na.value due to (2).
This PR aims to fix #5929.
Briefly, there are 3 situations by which a value can become
NA
in a discrete scale.NA
.NA
because a palette value isNA
.Currently, we cannot distinguish between situation (2) and situation (3). This PR ensures that situation (1) and (2) are laundered through the
na.translate
/na.value
mechanism, but (3) is not because we could assume (3) is intentional by users (see issue).As a demo, notice that 'e' gets
NA
due to (3) and is subsequently removed, while 'r' getsna.value
due to (2).Created on 2024-06-19 with reprex v2.1.0