วิธีแก้ไข: ความสวยงามต้องมีความยาว 1 หรือเท่ากับข้อมูล


ข้อผิดพลาดที่คุณอาจพบใน R คือ:

 Error: Aesthetics must be either length 1 or the same as the data (5): fill

ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณพยายามระบุสี เติม เพื่อใช้ในพล็อต ggplot2 แต่จำนวนสีที่คุณระบุไม่เท่ากับ 1 หรือไม่เท่ากับจำนวนวัตถุทั้งหมดที่จะเติม

ตัวอย่างต่อไปนี้แสดงวิธีการแก้ไขข้อผิดพลาดนี้ในทางปฏิบัติ

วิธีการทำซ้ำข้อผิดพลาด

สมมติว่าเรากำลังทำงานกับชุดข้อมูล R ในตัวที่เรียกว่า airquality :

 #view first six lines of air quality dataset
head(airquality)

  Ozone Solar.R Wind Temp Month Day
1 41 190 7.4 67 5 1
2 36 118 8.0 72 5 2
3 12 149 12.6 74 5 3
4 18 313 11.5 62 5 4
5 NA NA 14.3 56 5 5
6 28 NA 14.9 66 5 6

ตอนนี้ สมมติว่าเราพยายามสร้างแปลงกล่องหลายแปลงเพื่อให้เห็นภาพการกระจายตัวของค่าโอโซนในแต่ละเดือน:

 library (ggplot2)

#attempt to create multiple boxplots
ggplot(data = airquality, aes(x=as. character (Month), y=Temp)) +
geom_boxplot(fill=c(' steelblue ', ' red '))

Error: Aesthetics must be either length 1 or the same as the data (5): fill

เราได้รับข้อผิดพลาดเนื่องจากมี 5 เดือนที่ไม่ซ้ำกันในชุดข้อมูล (ดังนั้นเราจะสร้าง 5 boxplots) แต่เราได้จัดเตรียมอาร์กิวเมนต์ การเติม ไว้เพียงสองสีเท่านั้น

วิธีการแก้ไขข้อผิดพลาด

มีสองวิธีในการแก้ไขข้อผิดพลาดนี้:

วิธีที่ 1: ใช้เพียงสีเดียวในอาร์กิวเมนต์การเติม

เราสามารถเลือกใช้เพียงสีเดียวในการเติมอาร์กิวเมนต์:

 library (ggplot2)
ggplot(data = airquality, aes(x=as. character (Month), y=Temp)) +
geom_boxplot(fill=c(' steelblue '))

สิ่งนี้ช่วยให้เราสามารถเติมแต่ละ boxplot ด้วยสีเดียวกันได้

วิธีที่ 2: ใช้จำนวนสีเดียวกันกับจำนวน boxplots

นอกจากนี้เรายังสามารถระบุสีที่จะใช้ได้ห้าสี เนื่องจากสอดคล้องกับจำนวน boxplots ที่เราจะสร้าง:

 library (ggplot2)
ggplot(data = airquality, aes(x=as. character (Month), y=Temp)) +
geom_boxplot(fill=c(' steelblue ', ' red ', ' purple ', ' green ', ' orange ')) 

เราไม่ได้รับข้อผิดพลาดใดๆ เนื่องจากจำนวนสีที่เราระบุตรงกับจำนวนบ็อกซ์พล็อต

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีแก้ไขข้อผิดพลาดทั่วไปอื่น ๆ ใน R:

วิธีแก้ไข: ให้ค่าแยกกันในมาตราส่วนต่อเนื่อง
วิธีแก้ไข: อาร์กิวเมนต์ไม่ใช่ทั้งตัวเลขหรือตรรกะ: ส่งคืน na
วิธีแก้ไข: การเปลี่ยนทดแทนมีความยาวเป็นศูนย์

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *