2017-09-16 108 views
0
 IssuedDate PermitClassMapped 
    1 1981-12  Commercial 
    2 2012-12  Residential 
    3 1981-05  Residential 
    4 1981-05  Residential 
    5 1981-05  Commercial 
    6 1981-05  Commercial 

假设这是我的数据集,我想要创建一个新的数据框,该数据框对于每个年份组合都有一个唯一的行,对该日期的每个住宅实例进行计数的列,以及对每一个Commerical计数。例如,在此数据集我会如何基于另一列中的模式条件来计算数据帧的一列内的实例数?

Issued Date commercial Residential 
    1981-05  2    2 

我一直tapply瞎搞,count_()等功能,没有真正的好主意。

回答

2

我们可以使用dplyrtidyr

library(dplyr) 
library(tidyr) 

dt2 <- dt %>% 
    count(IssuedDate, PermitClassMapped) %>% 
    spread(PermitClassMapped, n, fill = 0) 

dt2 
# A tibble: 3 x 3 
    IssuedDate Commercial Residential 
*  <chr>  <dbl>  <dbl> 
1 1981-05   2   2 
2 1981-12   1   0 
3 2012-12   0   1 

DATA

dt <- read.table(text = "IssuedDate PermitClassMapped 
    1 1981-12  Commercial 
    2 2012-12  Residential 
    3 1981-05  Residential 
    4 1981-05  Residential 
    5 1981-05  Commercial 
    6 1981-05  Commercial", 
       header = TRUE, stringsAsFactors = FALSE) 
+0

这完美的作品,谢谢! – Emery

+0

我很乐意提供帮助。如果这是您正在寻找的解决方案,请接受此答案。 – www

相关问题