Muestra de filas aleatorias en el marco de datos

Resuelto nikhil asked hace 54 años • 13 respuestas

¿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?

nikhil avatar Jan 01 '70 08:01 nikhil
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
John Colby avatar Nov 25 '2011 19:11 John Colby

La respuesta que da John Colby es la respuesta correcta. Sin embargo, si eres dplyrusuario, 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).

kasterma avatar Feb 20 '2015 09:02 kasterma