0

我想显示一个仅显示最大 10 个值的帕累托图。使用下面的代码,我可以得到帕累托图,但数据集太大,所以噪音太大,某些数据点不可见。

library(qcc)
df = TestData$Amount
names(df) = TestData$CarType
pareto.chart(df) 

我已经考虑过并尝试从 [1:10] 添加一个数组以获得前十名,但数据集没有排序 - 他随机选择前十个值。

车型 数量
奥迪 12.546
梅赛德斯 6.767
大众 3.556
斯柯达 5.768
宾利 1.657
福特 2.934
雷克萨斯 15.567
三菱 532
现代 8.611
宝马 213
斯堪尼亚 4.450
沃尔沃 10.123

有什么建议么?

4

3 回答 3

0

我们可以Amount通过使用函数减少值来对列进行排序,order并选择您在帖子中提到的前 10 行:

library(qcc)
df = TestData$Amount
names(df) = TestData$CarType
df=df[order(-df)][1:10]
pareto.chart(df) 
于 2021-07-05T11:08:54.630 回答
0

您可以通过以下方式获得前 10 个值 -

library(dplyr)

df <- TestData %>% arrange(Amount) %>% slice(1:10)

#also
df <- TestData %>% slice_max(Amount, n = 10)

或以 R 为基数 -

df <- TestData[with(TestData, tail(order(Amount), 10)), ]
于 2021-07-05T11:09:05.033 回答
0

使用data.table

library(data.table)
df1 <- head(setDT(TestData)[order(Amount)], 10)
于 2021-07-05T17:58:28.950 回答