การปรับปรุงชื่อตัวแปรในชุดข้อมูล


11

ชื่อตัวแปรที่ดีคือ:

a) สั้น / ง่ายต่อการพิมพ์

b) จดจำได้ง่าย

c) เข้าใจ / สื่อสารได้

ฉันลืมอะไรไปหรือเปล่า ความสอดคล้องเป็นสิ่งที่มองหา วิธีที่ฉันจะกล่าวถึงก็คืออนุสัญญาการตั้งชื่อที่สอดคล้องกันทำให้เกิดคุณสมบัติข้างต้น ความสอดคล้องก่อให้เกิด (b) ความสะดวกในการเรียกคืนและ (c) ความเข้าใจแม้ว่าปัจจัยอื่น ๆ มักจะสำคัญกว่า มีการแลกเปลี่ยนที่ชัดเจนระหว่าง (a) ความยาวชื่อ / ความง่ายในการพิมพ์ (เช่นตัวพิมพ์เล็กทั้งหมด) และ (c) ความเข้าใจ

ฉันลงทุนความคิดที่ค่อนข้างยุติธรรมในประเด็นเหล่านี้เพราะมีคนหลายพันคนกำลังใช้ข้อมูลและฉันหวังว่าหลายคนจะใช้รหัสของฉันเพื่อเตรียมข้อมูลและช่วยในการวิเคราะห์บางประเภท ข้อมูลจากการศึกษาระยะยาวของสุขภาพวัยรุ่นแบ่งออกเป็นหลายชุดข้อมูล ขั้นตอนแรกของฉันคือการใช้ตัวแปร 227 ในชุดข้อมูลที่ใช้กันมากที่สุดให้ทำการถอดรหัสใหม่ให้ชื่อที่มีความหมายมากกว่า ชื่อตัวแปรดั้งเดิมคือชื่อ "aid", "s1", "s2" ซึ่งฉันเปลี่ยนชื่อเป็น "aid2", "อายุ" และ "male.is" มีตัวแปรอื่น ๆ อีกนับพันรายการในชุดข้อมูลอื่นซึ่งอาจรวมเข้าด้วยกันขึ้นอยู่กับเป้าหมายของนักวิจัย

ตราบใดที่ฉันเปลี่ยนชื่อตัวแปรฉันต้องการทำให้มีประโยชน์มากที่สุด นี่คือปัญหาที่ฉันพิจารณา จนถึงตอนนี้ฉันใช้ตัวพิมพ์เล็กเท่านั้นและหลีกเลี่ยงการใช้เครื่องหมายขีดคั่นหรือขีดล่างใด ๆ และฉันใช้ระยะเวลาเพียงเพื่อจุดประสงค์เฉพาะอย่างหนึ่งเท่านั้น สิ่งนี้มีข้อดีของความเรียบง่ายและความสอดคล้องและไม่มีปัญหาสำหรับตัวแปรส่วนใหญ่ แต่เมื่อสิ่งต่าง ๆ มีความซับซ้อนมากขึ้นฉันก็อยากจะทำลายความมั่นคง ยกตัวอย่างเช่นตัวแปรของฉัน "talkprobmsum" มันจะง่ายต่อการอ่านว่า "talkProbMSum" หรือดีกว่ายังคง "talk.prob.m.sum" แต่ถ้าฉันจะใช้ตัวพิมพ์ใหญ่หรือจุดเพื่อแยกคำแล้ว ฉันไม่ควรทำกับตัวแปรทั้งหมดเหรอ?

ตัวแปรบางตัวถูกบันทึกไว้มากกว่าหนึ่งครั้งเช่นตัวแปรการแข่งขันดังนั้นฉันจึงผนวก. is หรือ. ii เพื่อระบุว่ามาจากแบบสอบถามในโรงเรียนหรือในบ้าน แต่มีบางอย่างเกิดขึ้นซ้ำ ๆ ที่ฉันยังไม่ทราบมันจะดีกว่าหรือถ้าจะผนวกการอ้างอิงไปยังชุดข้อมูลต่อท้ายชื่อของตัวแปรทุกตัว?

ฉันต้องการจัดกลุ่มให้อยู่กึ่งกลางและสร้างตัวแปรให้ได้มาตรฐานวิธีที่ฉันทำนั่นคือการต่อท้าย. zms หมายถึงคะแนน z โดยผู้ชายและโรงเรียน

ความคิดหรือทรัพยากรทั่วไปหรือเฉพาะเจาะจงใด ๆ ได้รับการชื่นชมอย่างมาก ดูที่เก็บนี้สำหรับรหัสของฉันบางส่วนและสถิติเชิงพรรณนาพร้อมรายการชื่อตัวแปร ฉันได้อธิบายสั้น ๆ ถึงสาเหตุของการแชร์รหัสนี้ที่นี่และมันถูกเผยแพร่เล็กน้อยที่นี่แต่ลิงก์สองอันสุดท้ายนี้ไม่เกี่ยวข้องกับปัญหาของการตั้งชื่อตัวแปร เพิ่ม:ฉันแก้ไขสิ่งนี้เบา ๆ ส่วนใหญ่เป็นเพียงการย้ายย่อหน้าเพื่อพยายามหลีกเลี่ยงความสับสนที่เห็นได้ชัดในความคิดเห็น ขอบคุณสำหรับความคิด!

เพิ่ม 2016-09-05:มันเป็นมูลค่าการสังเกตคู่มือสไตล์ R ของ Hadley Wickhamและคู่มือสไตล์ R ของ Google ... Hadley พูดว่า:

ชื่อตัวแปรและฟังก์ชันควรเป็นตัวพิมพ์เล็ก ใช้ขีดล่าง (_) เพื่อคั่นคำต่าง ๆ ภายในชื่อ

Google พูดว่า:

อย่าใช้เครื่องหมายขีดล่าง (_) หรือเครื่องหมายขีดคั่น (-) ในตัวระบุ ตัวระบุควรตั้งชื่อตามอนุสัญญาดังต่อไปนี้ รูปแบบที่ต้องการสำหรับชื่อตัวแปรคือตัวอักษรและตัวพิมพ์เล็กทั้งหมดที่คั่นด้วยจุด (ตัวแปร. ชื่อ) แต่ตัวแปรชื่อเป็นที่ยอมรับ; ชื่อฟังก์ชั่นมีอักษรตัวใหญ่เริ่มต้นและไม่มีจุด (FunctionName); ค่าคงที่มีชื่อเหมือนฟังก์ชัน แต่มีค่าเริ่มต้น k


+1 สำหรับการตั้งค่าที่เก็บสาธารณะเพื่อแบ่งปันระหว่างนักวิจัยแม้ว่าคำถามนี้จะเป็นของ Stack Overflow จริงๆ
โก้

6
ทำไมคำถามนี้จะดีกว่าใน SO, @nico? สำหรับฉันแล้วมันไม่ได้เกี่ยวกับการเขียนโปรแกรมหรือแม้แต่เกี่ยวกับRแต่เกี่ยวกับแนวทางปฏิบัติที่เหมาะสมสำหรับการจัดทำเอกสารและการใช้ข้อมูล
whuber

4
@whuber: ฉันได้รับคะแนนของคุณ อย่างไรก็ตามการอ่านคำถามที่ฉันเห็นว่าเป็น "ฉันจะเรียกตัวแปรของฉันได้อย่างไร" ซึ่งสำหรับฉันฟังดูเหมือนเรื่องการเขียนโปรแกรมและไม่เกี่ยวกับสถิติ ... ในความคิดที่สองมันเป็นความจริงที่ว่าผู้ชมที่นี่ใกล้เคียง สิ่งที่จะใช้ข้อมูลจริงมากกว่าของ SO
โก้

2
+1, ฉันคิดว่านี่เป็นคำถามที่ยอดเยี่ยม & ความรุ่งโรจน์สำหรับการทำเช่นนี้
gung - Reinstate Monica

2
ฉันคิดว่านี่ควรจะเปิดอยู่
gung - Reinstate Monica

คำตอบ:


4

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

มีแพ็กเกจ R ต่างๆให้เครื่องจักรนี้เช่นมีที่คุณใช้และHmisc memiscแต่จริงๆแล้วตัวเลือกที่ดีที่สุดคือการทำให้ทุกอย่างเป็นแพ็คเกจ R ด้วยวิธีนี้ข้อมูลที่ประมวลผลสามารถเป็นวัตถุที่มีหน้าช่วยเหลือที่เกี่ยวข้องซึ่งอธิบายถึงสิ่งที่ทุกอย่างถูกเรียกใช้ในขณะนี้และสามารถกำหนดเครดิตในกรณีที่ถึงกำหนด แพคเกจยังสามารถเปิดเผยข้อมูลดิบและฟังก์ชั่นการประมวลผลของคุณเพื่อให้ผู้คนได้เห็นว่าคุณทำอะไรเพื่อสร้างผลิตภัณฑ์ขั้นสุดท้าย

นอกจากนี้ข้อเสนอแนะ: อย่ารวมข้อมูลที่ได้มาเช่นตัวแปรและเวอร์ชันที่ทำคะแนน z ไว้ในออบเจ็กต์ข้อมูลสุดท้ายหากคุณสามารถช่วยได้เพียงแค่เตรียมฟังก์ชั่นเพื่อใช้แทน ข้อมูลที่ได้รับเป็นเพียงปัญหาจากมุมมองการจัดการข้อมูล


คุณบอกว่าชื่อตัวแปรไม่สำคัญตราบใดที่พวกเขาได้รับการบันทึกไว้อย่างดี ... ฉันไม่ต้องการที่จะสร้างภูเขาจากตุ่นฮิลล์ แต่ฉันคิดว่าพวกเขามีความสำคัญในระดับหนึ่ง ชื่อตัวแปรที่จำได้ยากหรือพิมพ์ยากมีค่าใช้จ่ายจริงในเวลาของนักวิจัย โดยเฉพาะอย่างยิ่งหากมีการใช้ชื่อตัวแปรเดียวกันโดยนักวิจัยหลายพันคน ขอขอบคุณสำหรับคำแนะนำอื่น ๆ ของคุณ :)
Michael Bishop

4

นี่คือสิ่งเล็ก ๆ : ฉันคิดว่าการใช้เครื่องหมายขีดล่างดีกว่าระยะเวลา เหตุผลก็คือภาษาการเขียนโปรแกรมส่วนใหญ่ซึ่งแตกต่างจาก R ไม่สนับสนุนช่วงเวลาในตัวระบุ แต่เกือบทั้งหมดสนับสนุนการขีดเส้นใต้ และฉันคิดว่าคุณต้องการให้ชุดข้อมูลของคุณมีประโยชน์ต่อผู้ที่ไม่ได้ใช้อาร์


1

ก่อนอื่นขอขอบคุณที่ทำเช่นนี้ - ฉันแน่ใจว่าหลายคนจะประทับใจแม้ว่าจะมีคนไม่มากที่รู้ว่าคุณทำ

ส่วนต่อประสานผู้ใช้ RStudio ไม่ได้ (อย่างน้อยก็มีตัวเลือกเริ่มต้น?) ตีความตัวคั่นใด ๆ ภายในชื่อตัวแปร ยกตัวอย่างเช่น Eclipse ถือว่าทุนเป็นชิ้นส่วนแยกคำเพื่อให้คุณสามารถใช้ Ctrl + ลูกศรได้อย่างรวดเร็วแก้ไขรหัส Java ageStandardizedMaleSchoolสไตล์เช่น ฉันไม่สามารถหาเหตุผลที่ดีกว่านี้ให้เลือกตัวคั่นเดียวมากกว่าตัวคั่นอื่นได้ดังนั้นการขีดเส้นใต้หรือตัวพิมพ์ใหญ่ก็ดูดีสำหรับฉัน

โดยทั่วไปแล้วฉันแนะนำให้ตั้งชื่อตัวแปรให้ยาวกว่าแทนที่จะใช้รูปแบบตัวย่อที่ซับซ้อน มันง่ายที่จะสร้างความผิดพลาดเช่นtalk.prob.m.sumแทนที่จะเป็นtalk.prob.sum.msและมันเป็นเรื่องยากที่จะตรวจสอบและติดตามข้อผิดพลาดในการวิเคราะห์ทางสถิติ (ค่อนข้างเกี่ยวข้อง: คำพูดที่ดีที่ฉันได้อ่านในบล็อกบางอย่างคือการเขียนชื่อตัวแปรของคุณเช่นคำสแกนดิเนเวีย - SickHouseและToothHealerแทนที่จะเป็นโรงพยาบาลและทันตแพทย์ )

ในหมายเหตุสุดท้าย: การกำหนดมาตรฐานการจัดกึ่งกลาง ฯลฯ โดยทั่วไปแล้วจะทำหลังจากการล้างข้อมูล หากไม่มีการทำความสะอาดให้ลองพิจารณาทิ้งไว้กับใครก็ตามที่จะวิเคราะห์ข้อมูล หรือหากคุณกำลังทำความสะอาดตัวเองเช่นกันให้ระบุขั้นตอนทั้งหมดที่คุณทำ - การวิเคราะห์และการตีความที่ตามมาอาจขึ้นอยู่กับสิ่งนั้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.