我正在查看一些销售数据,并试图找到每天最低的3个结果(此时销售人员无关紧要)。
按日期分组会对第一部分进行分类,但后来我尝试使用负top_n命令查找前3个并得到错误的结果。
date sales
14/11 39
14/11 3.2
14/11 13
14/11 8.3
14/11 5
14/11 5.6
14/11 79
14/11 35
14/11 24
14/11 8.1
14/11 21
14/11 40
14/11 50
14/11 82
15/11 8.3
15/11 7.2
15/11 63
15/11 31
15/11 35
15/11 2.1
15/11 31
15/11 11
15/11 3.8
15/11 29
15/11 ---
这个我已经保存为csv,我将其视为原始的'。然后我写了代码:
raw2 <- raw %>%
group_by(date) %>%
top_n(n = -3, wt = sales)
返回:
date sales
14/11 13
14/11 24
14/11 21
15/11 2.1
15/11 11
15/11 ---
我曾经尝试过很多其他数据,但是找不到其他列的优先顺序,但是要清除它们。
欣赏你的想法。
答案 0 :(得分:1)
之所以发生这种情况,是因为销售栏中存在非数字字符,即---
。这会将列的类转换为字符。因此,排序不会基于数量而是按字母顺序发生,例如2在1之后,因此11将在2之前出现。
怎么做:
将所有---
替换为NA,然后将列设为数字,现在使用您的代码