Có cách nào tốt để lấy mẫu hàng từ một phần của khung dữ liệu không?Mẫu ngẫu nhiên của các hàng từ tập hợp con của một khung dữ liệu R
Nếu tôi chỉ có dữ liệu như
gender <- c("F", "M", "M", "F", "F", "M", "F", "F")
age <- c(23, 25, 27, 29, 31, 33, 35, 37)
sau đó tôi có thể dễ dàng lấy mẫu trong độ tuổi từ ba trong số Fs với
sample(age[gender == "F"], 3)
và nhận được một cái gì đó giống như
[1] 31 35 29
nhưng nếu tôi chuyển dữ liệu này thành một khung dữ liệu
mydf <- data.frame(gender, age)
tôi không thể sử dụng rõ ràng
sample(mydf[mydf$gender == "F", ], 3)
mặc dù tôi có thể dựng lên một cái gì đó phức tạp với một số ngớ ngẩn của dấu ngoặc như
mydf[sample((1:nrow(mydf))[mydf$gender == "F"], 3), ]
và nhận được những gì tôi muốn mà là một cái gì đó giống như
gender age
7 F 35
4 F 29
1 F 23
Có cách nào tốt hơn để tôi mất ít thời gian hơn để tìm hiểu cách viết không?
6 dấu ngoặc đơn (dù trên một hoặc hai dòng) chắc chắn tốt hơn 10. – Henry
Tôi vẫn không thể tin rằng không có cách nào dễ dàng để thực hiện quy trình thống kê đơn giản như vậy trong R. Có một ứng dụng, ý tôi là, một gói cho điều đó. –