ฉันเห็นในการสอนเกี่ยวกับการสร้างแบบจำลองการถดถอยคำสั่งต่อไปนี้:
myFormula <- Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width
คำสั่งนี้ทำอะไรกันแน่และบทบาทของ~(tilde) ในคำสั่งคืออะไร?
ฉันเห็นในการสอนเกี่ยวกับการสร้างแบบจำลองการถดถอยคำสั่งต่อไปนี้:
myFormula <- Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width
คำสั่งนี้ทำอะไรกันแน่และบทบาทของ~(tilde) ในคำสั่งคืออะไร?
คำตอบ:
สิ่งที่อยู่ทางขวา<-คือformulaวัตถุ มันมักจะใช้เพื่อแสดงรูปแบบทางสถิติซึ่งสิ่งที่อยู่ทางซ้ายของ~คือการตอบสนองและสิ่งที่อยู่ทางขวาของ~เป็นตัวแปรอธิบาย ดังนั้นในภาษาอังกฤษที่คุณต้องการพูดอะไรเช่น"สปีชี่ขึ้นอยู่กับความยาว Sepal, Sepal ความกว้างความยาวกลีบดอกและกลีบกว้าง"
myFormula <-ส่วนหนึ่งของสายที่เก็บสูตรในวัตถุที่เรียกว่าmyFormulaเพื่อให้คุณสามารถใช้ในส่วนอื่น ๆ ของรหัส R ของคุณ
การใช้งานทั่วไปอื่น ๆ ของวัตถุสูตรใน R
latticeแพคเกจใช้เพื่อระบุตัวแปรพล็อต แพคเกจใช้เพื่อระบุการติดตั้งสำหรับพล็อต แพคเกจใช้พวกเขาสำหรับevaulation ที่ไม่ได้มาตรฐานggplot2dplyr
lazyevalบทความสั้นจะให้การแนะนำที่ดีเกี่ยวกับสูตรคืออะไร
R กำหนด~โอเปอเรเตอร์ (tilde) สำหรับใช้ในสูตร สูตรมีการใช้งานทุกประเภท แต่อาจพบได้บ่อยที่สุดสำหรับการถดถอย:
library(datasets)
lm( myFormula, data=iris)
help("~")หรือhelp("formula")จะสอนคุณมากขึ้น
@Spacedman ได้ครอบคลุมพื้นฐาน เรามาคุยกันว่ามันทำงานอย่างไร
ขั้นแรกให้เป็นโอเปอเรเตอร์โปรดทราบว่ามันเป็นทางลัดไปยังฟังก์ชั่น (โดยมีอาร์กิวเมนต์สองตัว):
> `~`(lhs,rhs)
lhs ~ rhs
> lhs ~ rhs
lhs ~ rhs
สิ่งนี้มีประโยชน์ที่จะทราบเพื่อใช้ในapplyคำสั่งครอบครัวเช่น
ประการที่สองคุณสามารถจัดการสูตรเป็นข้อความ :
oldform <- as.character(myFormula) # Get components
myFormula <- as.formula( paste( oldform[2], "Sepal.Length", sep="~" ) )
ประการที่สามคุณสามารถจัดการมันเป็นรายการ :
myFormula[[2]]
myFormula[[3]]
สุดท้ายมีเคล็ดลับที่เป็นประโยชน์เกี่ยวกับสูตร (ดูhelp("formula")เพิ่มเติม)
myFormula <- Species ~ .
ตัวอย่างเช่นเวอร์ชันด้านบนเหมือนกับเวอร์ชั่นดั้งเดิมเนื่องจากจุดนั้นหมายถึง "ตัวแปรทั้งหมดที่ยังไม่ได้ใช้" สิ่งนี้จะดูที่ data.frame ที่คุณใช้ในการโทรหาโมเดลในตอนท้ายของคุณดูว่ามีตัวแปรใดใน data.frame แต่ไม่ได้กล่าวถึงอย่างชัดเจนในสูตรของคุณและแทนที่จุดด้วยตัวแปรที่ขาดหายไปเหล่านั้น
Species~.ชีส์เป็นตัวแปรเดียวที่มีการใช้ ดังนั้นจึงขึ้นอยู่กับตัวแปรอื่น ๆ ทุกตัวใน data.frame
myFormula <- Species ~ . ฉันไม่เข้าใจ เมื่อจุดยังคงถูกแทนที่ด้วยตัวแปรจาก data.frame? คุณสามารถให้ตัวอย่าง