根据一个标准对底部三个进行分组

时间:2018-02-02 08:55:05

标签: r csv

我正在查看一些销售数据,并试图找到每天最低的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   ---

我曾经尝试过很多其他数据,但是找不到其他列的优先顺序,但是要清除它们。

欣赏你的想法。

1 个答案:

答案 0 :(得分:1)

之所以发生这种情况,是因为销售栏中存在非数字字符,即---。这会将列的类转换为字符。因此,排序不会基于数量而是按字母顺序发生,例如2在1之后,因此11将在2之前出现。

怎么做:  将所有---替换为NA,然后将列设为数字,现在使用您的代码

相关问题