ฉันกำลังมองหาวิธีสร้างชุดเมทริกซ์โดยที่ผลรวมคอลัมน์ทั้งหมดเท่ากับค่าที่ระบุ ฉันคิดว่าฉันสามารถสร้างเมทริกซ์แบบสุ่มและตรวจสอบแต่ละรายการเพื่อกรองว่า colSums= ค่าใดที่ต้องการ แต่ดูเหมือนว่าจะไม่ทำงาน นอกจากนี้ เราจะสร้างเมทริกซ์แบบสุ่มใน R ด้วยค่าบวกและค่าลบได้อย่างไร
คุณจะสร้างเมทริกซ์สุ่มใน R ด้วยค่า colSum คงที่ได้อย่างไร
คำตอบ (1)
คุณสามารถทำเช่นนี้ นี่คือฟังก์ชันที่สร้างเมทริกซ์ที่เต็มไปด้วยตัวเลขสุ่มจากการแจกแจงแบบปกติ จากนั้นจะจัดคอลัมน์ทั้งหมดให้อยู่ตรงกลางเป็น 0 และเพิ่มจำนวนที่ต้องการ
RandomMatrixColsum = function(mycolsum=1, dim=c(10, 10), ...){
m <- matrix(rnorm(prod(dim), ...), ncol=dim[2])
ms <- scale(m, center=T, scale=F) + mycolsum/dim[1]
return(ms)
}
RandomMatrixColsum(8)
หากคุณต้องการให้แน่ใจว่ามีทั้งค่าบวกและลบในเมทริกซ์ คุณสามารถเพิ่มค่าเบี่ยงเบนมาตรฐานของ rnorm
ได้โดยการเพิ่มอาร์กิวเมนต์ sd=...
ในการเรียกใช้ฟังก์ชัน หรือบังคับให้ sd เท่ากับค่าเฉลี่ยด้วย
person
agenis
schedule
26.05.2016
?runif
เช่น ลองrunif(your_desired_number, -1, 1)
- person Vincent Bonhomme   schedule 26.05.2016