ggplot2, aes เทียบกับ aes_string
ดังนั้นผมจึงจำเป็นต้องเปลี่ยนaesด้วยเนื่องจากความล้มเหลวaes_stringrcmdcheck()
ต้นฉบับ:
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, และBC
คำตอบ
ความแตกต่างระหว่าง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 ระบุไว้ในความคิดเห็นฟังก์ชันเหล่านี้ไม่ได้รับการสนับสนุนทั้งหมดซึ่งฉันเชื่อว่าหมายความว่าฟังก์ชันเหล่านี้จะถูกเก็บไว้เพื่อความเข้ากันได้ แต่ไม่สนับสนุนการใช้งาน