R ปฏิบัติต่อข้อโต้แย้งเกี่ยวกับตำแหน่งอย่างไร

ฉันเป็นคนงูหลามและยังใหม่กับ R (จนถึงตอนนี้ สิ่งที่ฉันทำก็แค่คัดลอกและวางโค้ดและสกรีนช็อตผลลัพธ์ที่เป็นกราฟ)

ตอนนี้ฉันอยากเรียนภาษาจริงๆ เพื่อจะได้วาดโครงเรื่องที่มีประโยชน์ได้ (ตอนนี้ฉันกำลังพยายามเขียนสิ่งนี้ ).

ในการพยายามพล็อตครั้งแรก ฉันเจอการเรียกใช้ฟังก์ชันนี้:

sets_options("universe", seq(from = 0, to = 25, by = 0.1))

ตอนนี้ฉันอยากจะรู้ว่าฉันสามารถบรรลุผลเดียวกันโดยการโทรได้หรือไม่

sets_options("universe", seq(0, 25, 0.1))

หน้าช่วยเหลือสำหรับ seq ไม่ได้พูดถึงเรื่องนี้โดยเฉพาะ (หรือฉันอ่านไม่ถูกต้อง) ดังนั้นฉันหวังว่าจะมีคนให้ความกระจ่างว่า R จัดการกับข้อโต้แย้งเชิงตำแหน่งอย่างไร

ฉันพยายามเรียกใช้ฟังก์ชันแบบนั้นใน R และใช้งานได้ (ไม่มีข้อผิดพลาดทางไวยากรณ์ ฯลฯ ) แต่ฉันไม่ทราบวิธีทดสอบผลลัพธ์ของฟังก์ชันนั้น ดังนั้นฉันจึงถูกบังคับให้ถามที่นี่


person inspectorG4dget    schedule 26.10.2013    source แหล่งที่มา
comment
รายละเอียดทั้งหมดเกี่ยวกับวิธีการจับคู่อาร์กิวเมนต์: cran.r-project.org/doc/manuals/r-release/ โดยคร่าวๆ อาร์กิวเมนต์ที่มีชื่อจะถูกจับคู่ก่อน จากนั้นอาร์กิวเมนต์ที่เหลือ (ผ่าน) จะถูกจับคู่กับอาร์กิวเมนต์ที่เหลือ (เป็นทางการ) ตามตำแหน่ง   -  person Brian Diggs    schedule 26.10.2013
comment
ความคิดเห็นบางส่วนเกี่ยวกับเวลาที่ควรใช้ชื่อกับตำแหน่งที่ adv-r.had .co.nz/Functions.html#calling-functions   -  person hadley    schedule 26.10.2013


คำตอบ (2)


การโทร sets_options() จะแสดงการตั้งค่าปัจจุบัน จากบันทึกต่อไปนี้ ดูเหมือนว่าข้อโต้แย้งเกี่ยวกับตำแหน่งจะได้รับการปฏิบัติตามที่คาดไว้:

> sets_options("universe", seq(0,5,0.25))
> sets_options()
$quote
[1] TRUE

$hash
[1] TRUE

$openbounds
[1] "()"

$universe
 [1] 0.00 0.25 0.50 0.75 1.00 1.25 1.50 1.75 2.00 2.25 2.50 2.75 3.00 3.25 3.50 3.75 4.00 4.25 4.50 4.75 5.00

> sets_options("universe", seq(from=0,to=5,by=0.25))
> sets_options()
$quote
[1] TRUE

$hash
[1] TRUE

$openbounds
[1] "()"

$universe
 [1] 0.00 0.25 0.50 0.75 1.00 1.25 1.50 1.75 2.00 2.25 2.50 2.75 3.00 3.25 3.50 3.75 4.00 4.25 4.50 4.75 5.00
person inspectorG4dget    schedule 26.10.2013
comment
ถูกต้อง. อาร์กิวเมนต์ตำแหน่งจะใช้ได้เสมอใน R และลำดับที่มีอยู่ใน python จะไม่อยู่ใน R คุณยังสามารถกำหนดฟังก์ชัน args ของคุณตามลำดับใดก็ได้ที่คุณต้องการ - person Justin; 26.10.2013

คำถามคือว่า seq กำลังทำอะไรกับวัตถุที่มีตำแหน่งและวัตถุที่มีชื่อ วิธีแก้ไขปัญหานี้โดยดูที่หน้า ?seq ซึ่งวางอาร์กิวเมนต์ที่มีชื่อและลำดับ:

seq(from = 1, to = 1, by = ((to - from)/(length.out - 1)),
length.out = NULL, along.with = NULL, ...)

ดังนั้น seq(0, 25, 0.1) จะถูกตีความในลักษณะเดียวกับ seq(from = 0, to = 25, by = 0.1) เนื่องจากลำดับเหมือนกับชื่อในรายการการใช้งาน

person IRTFM    schedule 26.10.2013
comment
ฉันได้อ่านหน้านั้นแล้วและพยายามที่จะได้ข้อสรุปที่คุณเสนอ อย่างไรก็ตาม ฉันสังเกตเห็นว่า by มีค่าเริ่มต้นเป็น ((to - from)/(length.out - 1)) และ length.out มีค่าเริ่มต้นเป็น NULL ดังนั้นฉันจึงไม่แน่ใจเกี่ยวกับตัวแปรใดที่ใช้กับค่าใด เนื่องจากการกำหนดค่าเริ่มต้นรายการใดรายการหนึ่งใช้ค่าที่ฉันไม่ได้ระบุ - person inspectorG4dget; 27.10.2013
comment
ค่าของคุณแทนที่ค่าเริ่มต้น - person IRTFM; 27.10.2013
comment
แต่จะเกิดอะไรขึ้นถ้าฉันไม่ระบุค่าสำหรับ ((to - from)/(length.out - 1))? - person inspectorG4dget; 27.10.2013
comment
จากนั้น by จะถูกคำนวณโดยใช้นิพจน์นั้นตามสิ่งที่กำหนดให้กับ from, to และ length.out - person IRTFM; 27.10.2013
comment
แต่ฉันยังไม่ได้ระบุ length.out ซึ่งมีค่าเริ่มต้นเป็น NULL - person inspectorG4dget; 27.10.2013
comment
ฉันเดาว่าคุณต้องอ้างอิงถึงผู้ตัดสินขั้นสุดท้าย รหัสสำหรับ seq.default - person IRTFM; 27.10.2013
comment
นั่นเป็นความคิดที่ยอดเยี่ยม ขอบคุณ - person inspectorG4dget; 27.10.2013