Muestra de filas aleatorias en el marco de datos
¿Estoy luchando por encontrar la función adecuada que devuelva un número específico de filas seleccionadas aleatoriamente sin reemplazo de un marco de datos en lenguaje R? ¿Puede alguien ayudarme?
Aceptado
Primero haz algunos datos:
> df = data.frame(matrix(rnorm(20), nrow=10))
> df
X1 X2
1 0.7091409 -1.4061361
2 -1.1334614 -0.1973846
3 2.3343391 -0.4385071
4 -0.9040278 -0.6593677
5 0.4180331 -1.2592415
6 0.7572246 -0.5463655
7 -0.8996483 0.4231117
8 -1.0356774 -0.1640883
9 -0.3983045 0.7157506
10 -0.9060305 2.3234110
Luego seleccione algunas filas al azar:
> df[sample(nrow(df), 3), ]
X1 X2
9 -0.3983045 0.7157506
2 -1.1334614 -0.1973846
10 -0.9060305 2.3234110
La respuesta que da John Colby es la respuesta correcta. Sin embargo, si eres dplyr
usuario, también está la respuesta sample_n
:
sample_n(df, 10)
Muestra aleatoriamente 10 filas del marco de datos. Llama sample.int
, por lo que realmente es la misma respuesta con menos escritura (y simplifica el uso en el contexto de magrittr ya que el marco de datos es el primer argumento).