ggplot2:aes_ や aes_string が非推奨なので置き換える

Warning message:
“`aes_string()` was deprecated in ggplot2 3.0.0.
ℹ Please use tidy evaluation ideoms with `aes()`”

といったメッセージで対応したときのメモです。

対応前

変数に入れた列名など、文字列で列名を指定したいときに使っていました。

library(ggplot2)

x_val <- "Sepal.Length"
y_val <- "Sepal.Width"
c_val <- "Species"

# aes_string
ggplot(
  data = iris, 
  mapping = aes_string(
    x = x_val, 
    y = y_val, 
    color = c_val
  )
) + geom_point()

# aes_
ggplot(
  data = iris, 
  mapping = aes_(
      x = as.name(x_val), 
      y = as.name(y_val), 
      color = as.name(c_val)
    )
  ) + geom_point()

対応後

library(ggplot2)

x_val <- "Sepal.Length"
y_val <- "Sepal.Width"
c_val <- "Species"

ggplot(
  data = iris,
  mapping = aes(
      x = .data[[x_val]], 
      y = .data[[y_val]],
      color = .data[[c_val]]
    )
  ) + geom_point()
データ分析のためのデータ可視化入門 (Amazon)

コメント