Tengo un marco de datos (df1) como este.
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 columna d1 ... d4 es el nombre de la fila, la fila f1 ... f5 es el nombre de la columna.
Para hacer la muestra (df1), obtengo un nuevo marco de datos con un recuento de 1 igual que df1. Por lo tanto, el recuento de 1 se conserva para todo el marco de datos, pero no para cada fila o columna.
¿Es posible hacer la aleatorización por filas o por columnas?
Quiero aleatorizar la columna df1 para cada columna, es decir, el número de 1 en cada columna sigue siendo el mismo. y cada columna debe cambiarse al menos una vez. Por ejemplo, puedo tener un df2 aleatorio como este: (Noté que el recuento de 1 en cada columna sigue siendo el mismo, pero el recuento de 1 en cada fila es diferente.
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
Del mismo modo, también quiero aleatorizar la fila df1 para cada fila, es decir, el no. de 1 en cada fila sigue siendo el mismo, y es necesario cambiar cada fila (pero el número de entradas cambiadas podría ser diferente). Por ejemplo, un df3 aleatorio podría ser algo como esto:
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
PD. Muchas gracias por la ayuda de Gavin Simpson, Joris Meys y Chase por las respuestas anteriores a mi pregunta anterior sobre la distribución aleatoria de dos columnas.