หากคุณไม่รังเกียจที่จะเขียนสคริปต์เล็ก ๆ เพื่อทำสิ่งที่คุณต้องการฉันแนะนำให้ทำในRซึ่งเป็นระบบสถิติโอเพ่นซอร์ส
ยกตัวอย่างเช่นลองพิจารณาดูซับไลน์หนึ่งอันเพื่อรับรายการของ 100 ตัวเลขที่แจกแจงแบบเกาส์:
$ Rscript -e 'write(rnorm(100) * 100 + 100, "", 1)'
234.2903
-25.53289
168.0262
-28.49810
105.0687
85.97355
269.5072
...
มาทำลายมันกันเถอะ
R
คำสั่งมาตรฐานนำคุณเข้าสู่สภาพแวดล้อมการเขียนโปรแกรมแบบโต้ตอบซึ่งไม่เป็นไรหากคุณพยายามหาวิธีทำบางสิ่งด้วยมือหรือสร้างสิ่งที่เพิ่มขึ้นทีละขั้น แต่จากคำถามของคุณดูเหมือนว่าคุณแค่ต้องการรายการตัวเลข เพื่อส่งไปยังโปรแกรมอื่น ดังนั้นเราจึงใช้Rscript
ซึ่งทำหน้าที่เหมือนล่ามสคริปต์ Unix แบบดั้งเดิมมากขึ้น: คุณสามารถส่งผ่านชื่อไฟล์ที่มีสคริปต์ R หรือใช้-e
แฟล็กมาตรฐานเพื่อส่งผ่านข้อความโปรแกรมทั้งหมดในบรรทัดคำสั่ง
rnorm()
เป็นฟังก์ชั่น R เพื่อรับรายการหมายเลขสุ่มด้วยการแจกแจงแบบ "ปกติ" หรือแบบเกาส์เซียน มันต้องใช้พารามิเตอร์สูงสุดสามพารามิเตอร์ซึ่งจำเป็นต้องมีเพียงพารามิเตอร์แรกเท่านั้นจำนวนที่คุณต้องการ เราได้ขอให้ 100 โดยการใช้ค่าเริ่มต้นสำหรับพารามิเตอร์ทางเลือกอีกสองตัวเราได้ค่าเฉลี่ยเป็น 0 และส่วนเบี่ยงเบนมาตรฐานเท่ากับ 1
เลขคณิตหลังจากนั้นแสดงให้เห็นถึงคุณสมบัติที่ยอดเยี่ยมของภาษา R: คุณสามารถคำนวณทางคณิตศาสตร์บนตารางข้อมูลทั้งหมด, เมทริกซ์, ฯลฯ ได้อย่างง่ายดายเช่นเดียวกับค่าสเกลาร์ในภาษาทั่วไปที่มากกว่า ฉันได้คูณค่าที่สร้างทั้งหมดด้วย 100 และบวก 100 เข้ากับพวกเขาเพราะฉันทำได้ เนื่องจาก R เป็นภาษาโปรแกรมเต็มรูปแบบไม่มีข้อ จำกัด ในสิ่งที่คุณสามารถทำได้กับรายการตัวเลขนี้ jot
นั่นคือประโยชน์ของการใช้ระบบดังกล่าวแทนที่จะเป็นคำสั่งวัตถุประสงค์คงเหมือน
เราส่งผลลัพธ์ของการดำเนินการก่อนหน้านั้นไปยังwrite()
ฟังก์ชันซึ่งเขียนข้อมูลออกไปยังไฟล์ตามค่าเริ่มต้น แต่เราได้แทนที่ด้วยการส่งสตริงว่างสำหรับพารามิเตอร์ตัวที่สองชื่อไฟล์ดังนั้นมันจึงเขียนตารางออกไป สถานีแทน พารามิเตอร์ถัดไป1
เพียงแค่บอกว่าเราต้องการเอาต์พุตของเราในรูปแบบคอลัมน์เดี่ยว
R มีฟังก์ชั่นการสร้างตัวเลขสุ่มอื่น ๆอีกมากมายที่สร้างขึ้นในระบบฐาน ตัวอย่างเช่นเราสามารถเลียนแบบjot
คำสั่งในคำตอบของ lcpriani ด้วยสคริปต์นี้:
$ Rscript -e 'write(round(runif(10, 12, 27)), "", 1)'
ที่นี่เราใช้runif()
เพื่อรับ 10 ตัวเลขสุ่มกระจายอย่างสม่ำเสมอจาก 12 ถึง 27 เช่นrnorm()
ที่เราใช้ข้างต้นฟังก์ชั่นนี้จะส่งกลับค่าจุดลอยดังนั้นเราต้องให้round()
พวกเขาเป็นค่าจำนวนเต็มที่ใกล้ที่สุดก่อนที่จะเขียนพวกเขาไปที่หน้าจอ
R ยังมีชุด Add-on มากมายในCRANซึ่งเป็นที่เก็บแพคเกจที่จำลองมาจาก CPAN ของ Perl สิ่งหนึ่งที่คุณอาจสนใจคือเรียกง่ายๆว่าrandomซึ่งทำหน้าที่เป็นส่วนต่อประสานกับrandom.orgซึ่งเป็นบริการที่ส่งกลับตัวเลขสุ่มจริงที่สร้างขึ้นจากเสียงบรรยากาศ
R เป็นสภาพแวดล้อมการเขียนโปรแกรมที่สมบูรณ์ดังนั้นอาจเป็นไปได้ว่าคุณไม่จำเป็นต้องเอาตัวเลขออกจาก R ในรูปแบบข้อความ คุณอาจจะสามารถแก้ปัญหาทั้งหมดของคุณในอาร์ได้เลย