J'ai un dataframe (df1) comme ceci.
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
La colonne d1...d4 est le nom de l'utilisateur, la ligne f1...f5 est le nom de la colonne.
En faisant sample(df1), j'obtiens un nouveau dataframe avec un nombre de 1 identique à df1. Le nombre de 1 est donc conservé pour l'ensemble du dataframe mais pas pour chaque ligne ou chaque colonne.
Est-il possible d'effectuer la randomisation en ligne ou en colonne ?
Je veux randomiser le df1 pour chaque colonne, c'est-à-dire que le nombre de 1 dans chaque colonne reste le même. et chaque colonne doit être modifiée au moins une fois. Par exemple, je peux avoir un df2 aléatoire comme ceci : (Notez que le nombre de 1 dans chaque colonne reste le même mais que le nombre de 1 dans chaque ligne est différent.
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
De même, je souhaite également randomiser le df1 par ligne pour chaque ligne, c'est-à-dire que le nombre de 1 dans chaque ligne reste le même et que chaque ligne doit être modifiée (mais le nombre d'entrées modifiées peut être différent). Par exemple, un df3 aléatoire pourrait être quelque chose comme ceci :
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
PS. Merci beaucoup à Gavin Simpson, Joris Meys et Chase pour leurs réponses à ma question précédente sur la randomisation de deux colonnes.