ggplot2, aes बनाम aes_string
इसलिए मैं प्रतिस्थापित करने की आवश्यकता 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।
जवाब
के बीच का अंतर 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 ने टिप्पणियों में कहा है, ये कार्य सभी नरम-अप-आधारित हैं, जो मेरा मानना है कि इसका मतलब है कि उन्हें संगतता के लिए रखा गया है लेकिन उपयोग को हतोत्साहित किया जाता है।