ฉันมี dataframe (df1) แบบนี้
f1 f2 f3 f4 f5
d1 1 0 1 1 1
d2 1 0 0 1 0
d3 0 0 0 1 1
d4 0 1 0 0 1
คอลัมน์ d1 ... d4 คือ rowname แถว f1 ... f5 คือชื่อคอลัมน์
ในการทำตัวอย่าง (df1) ฉันได้รับดาต้าเฟรมใหม่ที่มีจำนวน 1 เท่ากับ df1 ดังนั้นจำนวน 1 จึงถูกสงวนไว้สำหรับทั้งดาต้าเฟรม แต่ไม่ใช่สำหรับแต่ละแถวหรือแต่ละคอลัมน์
เป็นไปได้ไหมที่จะทำการสุ่มแถวหรือคอลัมน์ฉลาด?
ฉันต้องการสุ่มคอลัมน์ df1 ที่ชาญฉลาดสำหรับแต่ละคอลัมน์นั่นคือจำนวน 1 ในแต่ละคอลัมน์ยังคงเหมือนเดิม และแต่ละคอลัมน์ต้องมีการเปลี่ยนแปลงอย่างน้อยหนึ่งครั้ง ตัวอย่างเช่นฉันอาจมี df2 แบบสุ่มดังนี้: (สังเกตว่าจำนวน 1 ในแต่ละคอลัมน์ยังคงเหมือนเดิม แต่จำนวน 1 ในแต่ละแถวจะแตกต่างกัน
f1 f2 f3 f4 f5
d1 1 0 0 0 1
d2 0 1 0 1 1
d3 1 0 0 1 1
d4 0 0 1 1 0
ในทำนองเดียวกันฉันต้องการสุ่มแถว df1 สำหรับแต่ละแถวด้วยเช่นกันนั่นคือหมายเลข ของ 1 ในแต่ละแถวยังคงเหมือนเดิมและจำเป็นต้องเปลี่ยนแต่ละแถว (แต่รายการที่เปลี่ยนแปลงอาจแตกต่างกันไม่ได้) ตัวอย่างเช่น df3 แบบสุ่มอาจเป็นดังนี้:
f1 f2 f3 f4 f5
d1 0 1 1 1 1 <- two entries are different
d2 0 0 1 0 1 <- four entries are different
d3 1 0 0 0 1 <- two entries are different
d4 0 0 1 0 1 <- two entries are different
ปล. ขอบคุณมากสำหรับความช่วยเหลือจาก Gavin Simpson, Joris Meys และ Chase สำหรับคำตอบก่อนหน้าสำหรับคำถามก่อนหน้าของฉันเกี่ยวกับการสุ่มสองคอลัมน์