根据R

时间:2017-05-24 20:03:53

标签: r

我有一个标题为FilteredData多个列的数据框。具体来说,我感兴趣的有两列:DateSale number.

我想按日期对所有Sale number条目进行分组。 Date是日期类型字段,Sale number是字符类型字段。如果我没有弄错的话,我认为这些类型是其他Q& As在S.O.上的原因。对我来说有很大的帮助。

我该怎么做?

我尝试过以下方法:

aggregate(FilteredData$`Sale number`, by FilteredData$Date, FUN = count)
group_by(FilteredData$`Sale number`, FilteredData$Date)

当我尝试时,解决方案都没有找到here

我尝试了以下内容:

library(sqldf)
Freq = sqldf('SELECT Date, COUNT('Sale Number') FROM FilteredData GROUP BY Date')

令人惊讶地工作。但是,有没有办法获得这个结果而不必使用SQL语法,即纯粹的""在R?

2 个答案:

答案 0 :(得分:1)

您可以按如下方式使用data.table

library(data.table)
setDT(FilteredData)

FilteredData[ , uniqueN(`Sale number`), by = Date]

我不确定dplyr是否有针对此的定制功能......您可能只需要length(unique(`Sale number`))

答案 1 :(得分:1)

您的问题有点不清楚......所以您希望按 date 进行分组,然后计算某个日期内非重复条目的数量?

dplyr可以执行此操作:

FilteredData %>% # take filtered data
  group_by(FundedDate) %>% # group by the date
  subset(!duplicated('Sale number')) %>% # remove rows that are duplicated sales numbers 
  count('Sale number') # count sales numbers