R计算特定值的实例

时间:2015-10-11 23:42:18

标签: r data-manipulation

我有一个data.frame,如下所示

df <- read.table(header = T, text = "Item.Nbr supply demand
1   82078-002          1  1
2   82078-007           2 0
3   82078-007          4 0
4   82078-007           0 0
5   82078-007           0 7")
> df
   Item.Nbr supply demand
1 82078-002      1      1
2 82078-007      2      0
3 82078-007      4      0
4 82078-007      0      0
5 82078-007      0      7

我想计算Item.Nbr发生0次供需的次数,我也想知道供应和需求的次数是多少次由Item.Nbr

   Item.Nbr 0_supply 0_demand 0_both
1 82078-002      0      0       0
2 82078-007      2      3       1

1 个答案:

答案 0 :(得分:5)

使用基础R aggregate

aggregate(. ~ Item.Nbr, data=transform(df, both=supply+demand), FUN=function(x) sum(x==0) )
#or
aggregate(
  cbind(supply,demand,both=supply+demand) ~ Item.Nbr, data=df, FUN=function(x) sum(x==0) 
)

#   Item.Nbr supply demand both
#1 82078-002      0      0    0
#2 82078-007      2      3    1

dplyr如果那是你的行李(向@akrun致敬):

df %>% 
  mutate(both= supply+demand) %>%
  group_by(Item.Nbr) %>% 
  summarise_each(funs(sum(!.)))

#Source: local data frame [2 x 4]
#
#   Item.Nbr supply demand both
#1 82078-002      0      0    0
#2 82078-007      2      3    1