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),
          ),

संपादित:

आर सीएमडी चेक त्रुटि कोई वैश्विक चर के लिए बाध्यकारी है 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_ और anes_string के लिए आपको aes_string () के लिए या तो उद्धरण के साथ या "aes_ () के लिए इनपुट को स्पष्ट रूप से उद्धृत करने की आवश्यकता है।

लेकिन जैसा कि MrFlick ने टिप्पणियों में कहा है, ये कार्य सभी नरम-अप-आधारित हैं, जो मेरा मानना ​​है कि इसका मतलब है कि उन्हें संगतता के लिए रखा गया है लेकिन उपयोग को हतोत्साहित किया जाता है।