これは、この質問へのフォローアップは、次のとおりです。変更ブレーク
Dataframe Aggregation By Group - Separating a Column's Values by Ranges
提供答えは素晴らしい作品Hmisc::cut2
を使用しています!私はブレークを修正して、$ 1で壊す代わりに$ 0.50でブレークするようにしたい。以下は
答えを提供されたコードです:、すべてのヘルプは素晴らしいことだ
library(Hmisc)
library(dplyr)
df$cut_Price <- cut2(df$Price, cuts = 4:13)
df %>% group_by(cut_Price, Size, Type) %>%
summarise_at(c("Opps", "NumberofSales", "Revenue"),"sum") %>%
arrange(Size, cut_Price) %>% ungroup() %>%
mutate(cut_Price = gsub("(.*, \\d\\.)00", "\\199", cut_Price))
# A tibble: 16 × 6
cut_Price Size Type Opps NumberofSales Revenue
<chr> <fctr> <fctr> <dbl> <dbl> <dbl>
1 [ 5.00, 6.99) LARGE desktop 477870 342455 2037.67
2 [ 6.00, 7.99) LARGE desktop 842882 523309 3292.29
3 [ 7.00, 8.99) LARGE desktop 283107 149878 1189.56
4 [10.00,11.00) LARGE desktop 5506835 1179544 12674.17
5 [11.00,12.00) LARGE desktop 3542187 1521347 17342.81
6 [ 3.63, 4.99) MEDIUM desktop 6038044 5129937 18617.94
7 [ 5.00, 6.99) MEDIUM desktop 2558997 478423 2548.95
8 [ 7.00, 8.99) MEDIUM desktop 1071631 352294 2483.10
9 [ 9.00,10.00) MEDIUM desktop 2510873 861183 8428.70
10 [10.00,11.00) MEDIUM desktop 441354 215643 2322.70
11 [11.00,12.00) MEDIUM desktop 5144351 1954720 22138.16
12 [ 3.63, 4.99) SMALL desktop 801038 587541 2145.76
13 [ 4.00, 5.99) SMALL desktop 939806 303515 1214.60
14 [ 5.00, 6.99) SMALL desktop 8303927 2143565 11902.14
15 [10.00,11.00) SMALL desktop 920975 321515 3284.54
16 [11.00,12.00) SMALL desktop 181471 236643 2811.50
感謝!
'cuts'を' seq(4,13、.5) 'に変更します。それが問題であれば、 'gsub'もクリーンアップする必要があります。 – alistaire
私はそれを試みましたが、範囲は[0,4]と[4、max]からです。それはあなたのために働いたのですか? @alistaire –
うん。あなたが本当に必要とするのは 'df%>%group_byです(size、cut_Price = Hmisc :: cut2(Price、cuts = seq(4,13、.5))、Type)%>% summarise_at(c(" Opps " ' – alistaire