Tôi muốn tìm sự kết hợp các giá trị thường xuyên nhất trong một data.frame.Tìm sự kết hợp giá trị thường xuyên nhất trong một data.frame
Dưới đây là một số ví dụ dữ liệu:
dat <- data.frame(age=c(50,55,60,50,55),sex=c(1,1,1,0,1),bmi=c(20,25,30,20,25))
Trong ví dụ này là kết quả Tôi đang tìm kiếm là sự kết hợp của tuổi = 55 tuổi, quan hệ tình dục = 1 và bmi = 25, vì đó là sự kết hợp thường gặp nhất của cột giá trị.
Dữ liệu thực của tôi có khoảng 30000 hàng và 20 cột. Điều gì sẽ là một cách hiệu quả để tìm ra sự kết hợp phổ biến nhất trong số 20 giá trị này trong số 30000 quan sát?
Rất cám ơn!
Cảm ơn bạn đã giải thích! Cách tiếp cận data.table hoạt động hoàn hảo và rất nhanh (0,31 giây trên dữ liệu của riêng tôi 30000 * 20), tuy nhiên, phương pháp R cơ sở không hoạt động trên dữ liệu của riêng tôi vì số lượng kết hợp thực sự quá lớn đối với bảng(). – Rob
Chỉ cần thử 'dt [, .N, by = key (dt)] [N == mà max (N)]' bạn đề xuất chỉ nhận được một hàng, nhưng điều đó mang lại cho tôi kết quả tương tự als 'dt [,. N, by = key (dt)] [N == max (N)] '... Bất kỳ gợi ý nào về cách chỉ nhận được một hàng với sự kết hợp các giá trị phổ biến nhất? – Rob
@Rob, Nó phải là 'dt [, .N, by = key (dt)] [which.max (N)]'. – A5C1D2H2I1M1N2O1R2T1