【发布时间】:2016-02-23 10:45:29
【问题描述】:
我有以下 data.frame,如下所示:
head(entries,10)
Provider.Region year.start month.start day.start Provider.Status
23511 North West 0010 05 17 Deregistered (V)
23512 North West 0010 05 17 Deregistered (V)
23709 West Midlands 0010 06 01 Registered
23562 London 0010 06 10 Registered
23563 London 0010 06 10 Registered
23566 London 0010 06 10 Registered
23764 West Midlands 0010 06 10 Deregistered (V)
23508 London 0010 06 11 Deregistered (V)
23555 West Midlands 0010 06 11 Registered
23497 South East 0010 06 14 Deregistered (V)
我想按月统计Provider.Status对应的因子水平。我想要的输出应该是这样的:
head(entries.1, 3)
time region Deregistered (V) Registered
5-0010 North West 2 0
6-0010 West Midlands 2 1
6-0010 London 1 3
目前我一直在使用dplyr如下
library(dplyr)
entries %>%
group_by(Provider.Region, year.start, month.start) %>%
mutate(counts_status = n())
但仍然没有产生我预期的输出,因为它给出了如下内容:
Source: local data frame [23,775 x 6]
Groups: Provider.Region, year.start, month.start [606]
Provider.Region year.start month.start Provider.Status counts_status
(fctr) (fctr) (fctr) (fctr) (int)
1 North West 0010 05 Deregistered (V) 2
2 North West 0010 05 Deregistered (V) 2
3 West Midlands 0010 06 Registered 4
4 London 0010 06 Registered 7
5 London 0010 06 Registered 7
6 London 0010 06 Registered 7
7 West Midlands 0010 06 Deregistered (V) 4
8 London 0010 06 Deregistered (V) 7
9 West Midlands 0010 06 Registered 4
10 South East 0010 06 Deregistered (V) 10
.. ... ... ... ... ...
是否有任何紧凑的方法可以让我从计数中创建变量?非常感谢提前
【问题讨论】:
-
您可以在问题中添加
dput(head(entries,10))吗? (将最容易重现您的数据集) -
您可能会发现
table(DF$Provider.Region, DF$Provider.Status)在根据需要汇总后很有帮助。 -
@akrun 我认为这可能是一个骗局,但不是那个问题。重塑通常意味着重新排列数据,而不是计算汇总统计信息(如计数)。无论如何,我现在就不要重复了。希望以后有人会努力找到合适的骗子。
-
@Frank 是的,这是有道理的