Amostra aleatória de linhas do subconjunto de um dataframe R [duplicado]
Esta pergunta já tem uma resposta aqui:
xemplo de linhas aleatórias no dataframe 9 respostasExiste uma boa maneira de obter uma amostra de linhas de parte de um datafram
Se eu tiver apenas dados como
gender <- c("F", "M", "M", "F", "F", "M", "F", "F")
age <- c(23, 25, 27, 29, 31, 33, 35, 37)
então eu posso facilmente provar as idades de três dos Fs com
sample(age[gender == "F"], 3)
e obter algo como
[1] 31 35 29
mas se eu transformar esses dados em um dataframe
mydf <- data.frame(gender, age)
Não consigo usar o óbvio
sample(mydf[mydf$gender == "F", ], 3)
embora eu possa inventar algo complicado com um número absurdo de colchetes como
mydf[sample((1:nrow(mydf))[mydf$gender == "F"], 3), ]
e consiga o que eu quero, algo como
gender age
7 F 35
4 F 29
1 F 23
Existe uma maneira melhor que me leva menos tempo para descobrir como escrever?