Tôi đã gặp sự cố hôm nay để tìm cách tập hợp số dplyr
trong R nhưng vì một số lý do không thể đưa ra giải pháp (mặc dù tôi nghĩ rằng điều này nên khá dễ dàng).Nhiều tập hợp (phân loại và số) với dplyr trong một chuỗi
Tôi có một tập hợp dữ liệu như thế này:
structure(list(date = structure(c(16431, 16431, 16431, 16432,
16432, 16432, 16433, 16433, 16433), class = "Date"), colour = structure(c(3L,
1L, 1L, 2L, 2L, 3L, 3L, 1L, 1L), .Label = c("blue", "green",
"red"), class = "factor"), shape = structure(c(2L, 2L, 3L, 3L,
3L, 2L, 1L, 1L, 1L), .Label = c("circle", "square", "triangle"
), class = "factor"), value = c(100, 130, 100, 180, 125, 190,
120, 100, 140)), .Names = c("date", "colour", "shape", "value"
), row.names = c(NA, -9L), class = "data.frame")
trong đó cho thấy như thế này:
date colour shape value
1 2014-12-27 red square 100
2 2014-12-27 blue square 130
3 2014-12-27 blue triangle 100
4 2014-12-28 green triangle 180
5 2014-12-28 green triangle 125
6 2014-12-28 red square 190
7 2014-12-29 red circle 120
8 2014-12-29 blue circle 100
9 2014-12-29 blue circle 140
Mục tiêu của tôi là để tính toán màu sắc thường gặp nhất, hình dáng và giá trị trung bình mỗi ngày. sản lượng dự kiến của tôi là như sau:
date colour shape value
1 27/12/2014 blue square 110
2 28/12/2014 green triangle 165
3 29/12/2014 blue circle 120
tôi đã kết thúc làm việc đó bằng split
và viết chức năng riêng của tôi để tính toán ở trên cho một data.frame
, sau đó sử dụng snow::clusterApply
để chạy nó song song. Đó là đủ hiệu quả (tập dữ liệu ban đầu của tôi dài khoảng 10M hàng) nhưng tôi tự hỏi liệu điều này có thể xảy ra trong một chuỗi sử dụng dplyr
. Hiệu quả là thực sự quan trọng cho việc này để có thể chạy nó trong một chuỗi là khá quan trọng.
bạn đã thử sử dụng 'group_by' và 'summarize'? [Cách tiếp cận này] (http://stackoverflow.com/questions/18433647/how-to-get-the-most-frequent-level-of-a-categorical-variable-in-r) có thể đạt được cấp độ phổ biến nhất. –