R中的取消统计

R中的取消统计,r,statistics,plyr,R,Statistics,Plyr,对不起,我想问一个问题:我正在统计R中的每日统计数据。每个日期有多个约会,并且有3种不同的状态:“已确认”、“已取消”和“延迟取消” 我尝试了表(数据),它似乎做了正确的计数,但它把所有日期都弄乱了顺序。有没有办法解决这个问题,或者如何在不丢失日期顺序的情况下进行计数 > data[25:35,] Date Status 25 9/8/2012 Confirmed 26 9/8/2012 Confirmed 27

对不起,我想问一个问题:我正在统计R中的每日统计数据。每个日期有多个约会,并且有3种不同的状态:“已确认”、“已取消”和“延迟取消”

我尝试了
表(数据)
,它似乎做了正确的计数,但它把所有日期都弄乱了顺序。有没有办法解决这个问题,或者如何在不丢失日期顺序的情况下进行计数

> data[25:35,] Date Status 25 9/8/2012 Confirmed 26 9/8/2012 Confirmed 27 9/8/2012 Cancelled 28 9/8/2012 Confirmed 29 9/9/2012 Confirmed 30 9/9/2012 Confirmed 31 9/9/2012 Cancelled 32 9/9/2012 Confirmed 33 9/9/2012 Late Cancellation 34 9/9/2012 Confirmed 35 9/10/2012 Confirmed >数据[25:35,] 日期状态 25 2012年9月8日确认 26 2012年9月8日确认 27 2012年9月8日取消 28 2012年9月8日确认 2012年9月29日确认 30 2012年9月9日确认 31 2012年9月9日取消 32 2012年9月9日确认 33 2012年9月9日延迟取消 34 2012年9月9日确认 35 2012年9月10日确认 这是3个月内约1000次约会的简化版本(全套中还有房间号、客户类型等),因此我希望通过这个简单的示例了解如何在R中计算和排序数据


如果我使用
unique(data$Date)
创建一个新的唯一日期向量,我可以使用它作为分类箱来将状态计数排序为多个吗?

我将使用
plyr
包中的
count
来执行此操作。让我们加载您的数据:

dat = read.table(text = "        Date             Status
 9/8/2012          Confirmed
 9/8/2012          Confirmed
 9/8/2012          Cancelled
 9/8/2012          Confirmed
 9/9/2012          Confirmed
 9/9/2012          Confirmed
 9/9/2012          Cancelled
 9/9/2012          Confirmed
 9/9/2012  LateCancellation
 9/9/2012          Confirmed
 9/10/2012          Confirmed", sep = "", header = TRUE)
首先,我们需要将
Date
转换为适当的时间感知数据类型,而不是字符串:

dat[["Date"]] = strptime(dat[["Date"]], format = "%m/%d/%Y")
并执行计数:

require(plyr)
cdat = count(dat, c("Date", "Status"))
> cdat
        Date           Status freq
1 2012-09-08        Cancelled    1
2 2012-09-08        Confirmed    3
3 2012-09-09        Cancelled    1
4 2012-09-09        Confirmed    4
5 2012-09-09 LateCancellation    1
6 2012-09-10        Confirmed    1
请注意,现在日期的顺序正确,这是因为使用
strtime
进行了转换。如果希望输出与
表格
类似,则需要使用
重塑2
包中的
dcast
执行一些调整:

> dcast(cdat, Date ~ Status, value.var = "freq")
        Date Cancelled Confirmed LateCancellation
1 2012-09-08         1         3               NA
2 2012-09-09         1         4                1
3 2012-09-10        NA         1               NA