我有一个包含82147 obs和36个变量的数据集,我需要找到频率最高的“说明”列的前200个级别,但是数据集中有一个QTY列,所以尽管我发现了最频繁的一个级别的“说明”,我无法获得最频繁重复的项目的真实图片,因为每条记录还列出了不为1的数量。
Top20InvDesc <- names(sort(summary(as.factor(Inventory$Description)),
decreasing=T)[1:20])
Top20InvDesc
我已经尝试过并继续在互联网上搜索如何执行此操作,但是我也不知道如何正确地问这个问题,因此我正在研究很多类似的东西,但我所需要的只是这些。 / p>
Top20InvDesc <- names(sort(summary(as.factor(Inventory$Description)),
decreasing=T)[1:20])
Top20InvDesc
和
library(dplyr)
Inventory %>%
group_by(Description) %>%
top_n(5, Qty)
假设“注射器”是“描述”列中的级别之一,并且是最重复的级别,但是每条记录的QTY为5。在“描述”中还有一个“手套”级别”列,它是重复次数第五高的级别,但每个的“数量”为1000。我知道“手套”应该是我要制作的新数据框中的第一项,但是我无法弄清楚如何获取我的代码来执行此操作。解决问题的最简单方法是创建一个新的数据框,其中每个项目都列为“数量1”,并且仅使用前20个项目。
我正在得到什么
Description
<fctr>
ARMBOARD INTRAVENOUS NEONATAL 4X1.5IN FOAM SEMIFLEXIBLE DISPOSABLE LATEX FREE-BG/24EA
Qty
<int>
32
我想要得到的东西和Armboard现在将被列出32次。
Description
<fctr>
ARMBOARD INTRAVENOUS NEONATAL 4X1.5IN FOAM SEMIFLEXIBLE DISPOSABLE LATEX FREE-BG/24EA
Qty
<int>
1
我的笔记本电脑具有32 GB内存和180瓦电源,因此我想我需要处理更长的处理时间,但这也将使数据处理起来更加容易。
答案 0 :(得分:0)
library(dplyr)
details_from_top20 <- Inventory %>%
group_by(Description) %>%
summarise(n = sum(QTY)) %>%
top_n(20) %>%
left_join(Inventory)
对于一个可复制的示例,我们可以使用mtcars
并获得具有最高总重量的齿轮(在本例中为3齿轮)的汽车的所有数据。 (这是人为的,但结构上是相同的问题。)
car_gears_with_top2_weights <- mtcars %>%
group_by(gear) %>%
summarise(total_wt = sum(wt*1000)) %>%
top_n(1) %>%
left_join(mtcars)
# A tibble: 15 x 12
gear total_wt mpg cyl disp hp drat wt qsec vs am carb
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 3 58389 21.4 6 258 110 3.08 3.22 19.4 1 0 1
2 3 58389 18.7 8 360 175 3.15 3.44 17.0 0 0 2
3 3 58389 18.1 6 225 105 2.76 3.46 20.2 1 0 1
4 3 58389 14.3 8 360 245 3.21 3.57 15.8 0 0 4
5 3 58389 16.4 8 276. 180 3.07 4.07 17.4 0 0 3
6 3 58389 17.3 8 276. 180 3.07 3.73 17.6 0 0 3
7 3 58389 15.2 8 276. 180 3.07 3.78 18 0 0 3
8 3 58389 10.4 8 472 205 2.93 5.25 18.0 0 0 4
9 3 58389 10.4 8 460 215 3 5.42 17.8 0 0 4
10 3 58389 14.7 8 440 230 3.23 5.34 17.4 0 0 4
11 3 58389 21.5 4 120. 97 3.7 2.46 20.0 1 0 1
12 3 58389 15.5 8 318 150 2.76 3.52 16.9 0 0 2
13 3 58389 15.2 8 304 150 3.15 3.44 17.3 0 0 2
14 3 58389 13.3 8 350 245 3.73 3.84 15.4 0 0 4
15 3 58389 19.2 8 400 175 3.08 3.84 17.0 0 0 2