2
ทำไม `['ดีกว่า` เซตย่อย'
เมื่อฉันต้องการกรอง data.frame เช่นแยกแถวที่ตรงตามเงื่อนไขฉันต้องการใช้subsetฟังก์ชั่น: subset(airquality, Month == 8 & Temp > 90) มากกว่า[ฟังก์ชั่น: airquality[airquality$Month == 8 & airquality$Temp > 90, ] มีสองเหตุผลหลักสำหรับการตั้งค่าของฉัน: ฉันพบว่ารหัสอ่านดีขึ้นจากซ้ายไปขวา แม้แต่คนที่ไม่รู้อะไรเลยเกี่ยวกับอาร์ก็สามารถบอกได้ว่าsubsetข้อความข้างต้นกำลังทำอะไรอยู่ เนื่องจากคอลัมน์สามารถเรียกได้ว่าเป็นตัวแปรในselectนิพจน์ฉันสามารถบันทึกการกดแป้นบางครั้งได้ ในตัวอย่างของฉันข้างต้นผมมีเพียงพิมพ์airqualityครั้งด้วยแต่สามครั้งด้วยsubset[ ดังนั้นฉันจึงมีความสุขใช้กับsubsetทุกที่เพราะสั้นกว่าและอ่านได้ดีขึ้นแม้จะสนับสนุนความงามของมันให้กับนักเขียนโค้ด R ของฉัน แต่เมื่อวานโลกของฉันแตกสลาย ขณะอ่านsubsetเอกสารฉันสังเกตเห็นส่วนนี้: คำเตือน นี่คือฟังก์ชั่นอำนวยความสะดวกสำหรับการใช้งานแบบโต้ตอบ สำหรับการเขียนโปรแกรมจะเป็นการดีกว่าที่จะใช้ฟังก์ชั่นการแบ่งย่อยมาตรฐานเช่น [และโดยเฉพาะอย่างยิ่งการประเมินที่ไม่ได้มาตรฐานของชุดย่อยของอาร์กิวเมนต์สามารถมีผลที่ไม่คาดคิด ใครช่วยอธิบายสิ่งที่ผู้แต่งหมายถึงได้บ้าง ก่อนอื่นพวกเขาหมายถึง " เพื่อใช้แบบโต้ตอบ "? ฉันรู้ว่าเซสชันแบบโต้ตอบคืออะไรเมื่อเทียบกับสคริปต์ที่ทำงานในโหมดแบทช์ แต่ฉันไม่เห็นความแตกต่างที่ควรทำ จากนั้นคุณช่วยอธิบาย " การประเมินผลที่ไม่ได้มาตรฐานของชุดย่อยของข้อโต้แย้ง " และทำไมมันอันตรายหรืออาจเป็นตัวอย่าง?