Things like sensible legends are also impeded by using complex expressions in aesthetics mappings, so call it a workaround if you like but creating the data frame the way it should be _before_ giving it to ggplot has always been recommended.
On April 30, 2022 5:09:51 AM PDT, Duncan Murdoch <murdoch.dun...@gmail.com> wrote: >On 30/04/2022 8:00 a.m., Dario Strbenac wrote: >> Good day, >> >> I am troubled understanding why the following example doesn't work: >> >>> characteristicsList >> $x >> `Classifier Name` >>> ggplot2::aes(fill = if(TRUE) NULL else >>> !!rlang::sym(characteristicsList[["fillColour"]])) >> Error in `rlang::sym()`: >> ! Can't convert NULL to a symbol. >>> rlang::last_error() >> 10. rlang::sym(characteristicsList[["fillColour"]]) >> >> but the following does work without error: >> >>> if(TRUE) NULL else !!rlang::sym(characteristicsList[["fillColour"]]) >> NULL # It is desirably avoiding the else part. >> >> The first example seems to be evaluating the else part, even though the if >> condition is true. >> >> The overall aim is to allow the end-user to specify a named list of >> appearance-modifying parameters, and for the function to create a ggplot >> with them, without being bamboozled if the end-user's list doesn't contain >> the specification for fill colour variable name or line colour variable name >> (like the list in the example above does not have). Thanks in advance for >> any suggested reading. > >I'm pretty sure this isn't the right place to ask about ggplot2, but that >looks like a bug to me. > >Duncan Murdoch > >______________________________________________ >R-package-devel@r-project.org mailing list >https://stat.ethz.ch/mailman/listinfo/r-package-devel -- Sent from my phone. Please excuse my brevity. ______________________________________________ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel