สมมติว่าฉันมีเวกเตอร์ชื่อ all_combinations
โดยมีตัวเลขตั้งแต่ 1 ถึง 20
ฉันต้องแยกเวกเตอร์ 2 ตัว (coding_1
และ coding_2
) ที่มีความยาวเท่ากับ number_of_peptide_clusters
ซึ่งก็คือ 20 เช่นกันในกรณีปัจจุบันของฉัน
เวกเตอร์ใหม่ 2 ตัวควรสุ่มตัวอย่างจาก all_combinations
เพื่อไม่ให้ทับซ้อนกันในแต่ละตำแหน่งดัชนี
ฉันทำสิ่งต่อไปนี้:
set.seed(3)
all_combinations=1:20
number_of_peptide_clusters=20
coding_1 <- sample(all_combinations, number_of_peptide_clusters, replace = FALSE)
coding_1
[1] 5 12 7 4 10 8 11 15 17 16 18 13 9 20 2 14 19 1 3 6
coding_2 <- sample(all_combinations, number_of_peptide_clusters, replace = FALSE)
coding_2
[1] 5 9 19 16 18 12 8 6 15 3 13 14 7 2 11 20 10 4 17 1
นี่คือตัวอย่างที่ทำให้ฉันมีปัญหา เนื่องจากมีตัวเลขเพียงตัวเดียวซ้อนทับกันที่ดัชนีเดียวกัน (5 ที่ตำแหน่ง 1)
สิ่งที่ฉันจะทำในกรณีเหล่านี้คือหาตัวเลขที่ทับซ้อนกันแล้วสุ่มตัวอย่างใหม่จากรายการตัวเลขที่ทับซ้อนกันทั้งหมด...
ลองนึกภาพ coding_1
และ coding_2
คือ:
coding_1
[1] 5 9 7 4 10 8 11 15 17 16 18 13 12 20 2 14 19 1 3 6
coding_2
[1] 5 9 19 16 18 12 8 6 15 3 13 14 7 2 11 20 10 4 17 1
ในกรณีนี้ ฉันจะให้ 5 และ 9 ทับซ้อนกันในตำแหน่งเดียวกัน ดังนั้นฉันจะสุ่มตัวอย่างใหม่ใน coding_2
จากรายการทั้งหมดที่ทับซ้อนกัน [เปลี่ยนดัชนีตัวอย่าง 1 จาก c(5,9)
เพื่อให้ไม่เท่ากับ 5
และจัดทำดัชนี 2 ดังนั้น ไม่เท่ากับ 9
] ดังนั้น coding_2
จะเป็น:
coding_2
[1] 9 5 19 16 18 12 8 6 15 3 13 14 7 2 11 20 10 4 17 1
อย่างไรก็ตาม ในกรณีเฉพาะข้างต้น ฉันไม่สามารถใช้วิธีการดังกล่าวได้... แล้วอะไรจะเป็นวิธีที่ดีที่สุดในการรับตัวอย่าง 2 ตัวอย่างที่มีความยาว 20 จากเวกเตอร์ที่มีความยาว 20 เช่นกัน เพื่อให้ตัวอย่างไม่ทับซ้อนกันในเวลาเดียวกัน ตำแหน่งดัชนี?
คงจะดีไม่น้อยหากฉันได้ตัวอย่างที่สอง coding_2
โดยที่รู้อยู่แล้ว coding_1
... ไม่เช่นนั้นการได้รับ 2 ตัวอย่างพร้อมกันก็เป็นที่ยอมรับได้ ถ้ามันทำให้ทุกอย่างง่ายขึ้น ขอบคุณ!
coding_1
และcoding_2
จะมีความยาวเท่ากันเสมอ แต่all_combinations
ก็สามารถมีค่าเท่ากันหรือใหญ่กว่าก็ได้ - person DaniCee   schedule 04.11.2020