ggplot2, aes 대 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_ ()의 경우 따옴표 또는 ~를 사용하여 입력을 명시 적으로 인용해야합니다.

그러나 MrFlick이 의견에서 언급했듯이 이러한 기능은 모두 사용되지 않으며 호환성을 위해 유지되지만 사용이 권장되지 않는다는 것을 의미합니다.