ggplot2、aes vs aes_string

Sep 13 2020

だから私は失敗aesしたaes_stringために交換する必要がありrcmdcheck()ます。

元の:

        aes(
          x = A,
          y = pmax(B, C, na.rm = TRUE),
          ),

私の混乱がに関するさBとC。pmax関数内にあるため、引用符で囲むことはできますか?そのようです:

        aes_string(
          x = "A",
          y = pmax("B", "C", na.rm = TRUE),
          ),

以下はさらに別の解決策ですか?:

        aes(
          x = .data$A, y = pmax(.data$B, .data$C, na.rm = TRUE),
          ),

編集:

R CMDチェックエラーは、変数のための世界的な結合がないことであるA、BとC。

回答

Oliver Sep 14 2020 at 06:02

違いaesとはaes_stringその、非常に単純であるaes_string引数を記述している文字列を解釈します。例えば。以下の作品

library(ggplot2)
data(mtcars)
ggplot(aes_string(x = "log(hp)", y = "1/log(mpg)", col = "factor(cyl)"), data = mtcars) + 
  geom_point() + 
  labs(col = 'cyl')

これもhelp(aes_string)ページに記載されています

aes_およびaes_stringでは、aes_string()の場合は ""を使用して、またはaes_()の場合はquoteまたは〜を使用して、入力を明示的に引用符で囲む必要があります。

しかし、MrFlickがコメントで述べたように、これらの関数はすべてソフト非推奨です。つまり、互換性のために保持されていると思いますが、使用はお勧めしません。