วิธีแก้ไขใน r: plot.new ยังไม่ได้ถูกเรียก
ข้อผิดพลาดที่คุณอาจพบเมื่อใช้ R คือ:
Error in plot.xy(xy.coords(x, y), type = type, ...):
plot.new has not been called yet
ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณพยายามดำเนินการที่ต้องมีพล็อตอยู่แล้วใน R แต่ไม่มีพล็อตอยู่
ตัวอย่างต่อไปนี้แสดงวิธีการแก้ไขข้อผิดพลาดนี้ในทางปฏิบัติ
ตัวอย่างที่ 1: วิธีการแก้ไขข้อผิดพลาดด้วย lines()
สมมติว่าเรากำลังพยายามพล็อตเส้นการถดถอยแบบพอดีใน R:
#createdata
df <- data. frame (x=c(1, 2, 2, 3, 5, 6, 8, 8, 9, 9, 10, 11, 12, 15, 15),
y=c(2, 3, 3, 4, 5, 5, 6, 7, 8, 8, 9, 10, 16, 19, 28))
#fit polynomial regression model
model <- lm(y~poly(x, 2), data=df)
#define new sequence of x-values
new_x <- seq(min(df$x), max(df$y))
#attempt to plot fitted regression line
lines(new_x, predict(model, newdata = data. frame (x=new_x)))
Error in plot.xy(xy.coords(x, y), type = type, ...):
plot.new has not been called yet
เราได้รับข้อผิดพลาดเนื่องจากเราไม่สามารถใช้ฟังก์ชัน lines() โดยไม่สร้างเส้นทางใน R ก่อน
เพื่อแก้ไขข้อผิดพลาดนี้ ขั้นแรกเราสามารถสร้างแผนภูมิกระจายแล้วใช้ฟังก์ชัน lines() :
#create data
df <- data. frame (x=c(1, 2, 2, 3, 5, 6, 8, 8, 9, 9, 10, 11, 12, 15, 15),
y=c(2, 3, 3, 4, 5, 5, 6, 7, 8, 8, 9, 10, 16, 19, 28))
#fit polynomial regression model
model <- lm(y~poly(x, 2), data=df)
#define new sequence of x-values
new_x <- seq(min(df$x), max(df$y))
#create scatterplot of x vs. y values
plot(y~x, data=df)
#attempt to plot fitted regression line
lines(new_x, predict(model, newdata = data. frame (x=new_x)))
โปรดทราบว่าเราไม่ได้รับข้อผิดพลาดเนื่องจากเราใช้ฟังก์ชัน plot() ก่อนใช้ฟังก์ชัน lines()
ตัวอย่างที่ 2: วิธีการแก้ไขข้อผิดพลาดด้วย abline()
สมมติว่าเรากำลังพยายามสร้าง Scatterplot ด้วยเส้นแนวนอนตรงใน R:
#create data
df <- data. frame (x=c(1, 2, 2, 3, 5, 6, 8, 8, 9, 9, 10, 11, 12, 15, 15),
y=c(2, 3, 3, 4, 5, 5, 6, 7, 8, 8, 9, 10, 16, 19, 28))
#attempt to add horizontal line at y=10
abline(a=10, b=0, lwd=2)
Error in plot.xy(xy.coords(x, y), type = type, ...):
plot.new has not been called yet
เราได้รับข้อผิดพลาดเนื่องจากเราไม่สามารถใช้ฟังก์ชัน abline() โดยไม่สร้างพล็อตใน R ก่อน
เพื่อแก้ไขข้อผิดพลาดนี้ ขั้นแรกเราสามารถสร้างแผนภูมิกระจายแล้วใช้ฟังก์ชัน abline() ได้:
#createdata
df <- data. frame (x=c(1, 2, 2, 3, 5, 6, 8, 8, 9, 9, 10, 11, 12, 15, 15),
y=c(2, 3, 3, 4, 5, 5, 6, 7, 8, 8, 9, 10, 16, 19, 28))
#create scatterplot of x vs. y
plot(y~x, data=df)
#add horizontal line at y=10
abline(a=10, b=0, lwd=2)
โปรดทราบว่าเราไม่ได้รับข้อผิดพลาดเนื่องจากเราใช้ฟังก์ชัน plot() ก่อนใช้ฟังก์ชัน abline()
ที่เกี่ยวข้อง: วิธีใช้ aline() ใน R เพื่อเพิ่มเส้นตรงให้กับเส้นทาง
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีแก้ไขข้อผิดพลาดทั่วไปอื่น ๆ ใน R:
วิธีแก้ไขใน R: ค่าคงที่สตริงที่ไม่คาดคิด
วิธีแก้ไขใน R: สูตรเทมเพลตไม่ถูกต้องใน ExtractVars
วิธีแก้ไขในอาร์กิวเมนต์ R: ไม่ใช่ทั้งตัวเลขหรือตรรกะ: return na