¿Hay una buena manera de obtener una muestra de filas de parte de un marco de datos?Muestra aleatoria de filas del subconjunto de un dataframe R
Si sólo tengo datos como
gender <- c("F", "M", "M", "F", "F", "M", "F", "F")
age <- c(23, 25, 27, 29, 31, 33, 35, 37)
entonces puedo probar fácilmente las edades de tres de los Fs con
sample(age[gender == "F"], 3)
y obtener algo así como
[1] 31 35 29
pero si convierto estos datos en un marco de datos
mydf <- data.frame(gender, age)
no puedo usar lo obvio
sample(mydf[mydf$gender == "F", ], 3)
aunque puedo inventar algo enrevesado con un número absurdo de soportes como
mydf[sample((1:nrow(mydf))[mydf$gender == "F"], 3), ]
y conseguir lo que quiero, que es algo así como
gender age
7 F 35
4 F 29
1 F 23
¿Hay alguna manera mejor que me tome menos tiempo para resolver cómo escribir?
6 soportes (ya sea en una o dos líneas) es sin duda mejor que 10. – Henry
Todavía no puedo creer que no haya una manera fácil de llevar a cabo un procedimiento estadístico funcional en R. Tiene que haber una aplicación, es decir, un paquete para eso. –