ฉันเห็นในการสอนเกี่ยวกับการสร้างแบบจำลองการถดถอยคำสั่งต่อไปนี้:
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 ที่ไม่ได้มาตรฐานggplot2
dplyr
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? คุณสามารถให้ตัวอย่าง