首页 > 解决方案 > 计算2个不同列的信息的公式

问题描述

我有一个具有各种区域名称的 A 列,可以说是区域 1 到 10(在整个列中重复,每个单元格中都有一个)。然后我有一个 B 列,其中包含在该特定区域完成某事的日期,一些单元格还没有日期,因为什么都没做。我需要创建一个摘要,在其中计算在该特定区域完成某事的次数。这意味着我需要在每个区域(区域 1、区域 2、区域 3 等)计算我做了多少次动作。我知道这是因为 B 列中有一个日期。我需要一个可以帮助我计算的公式。

标签: countsumformula

解决方案


这是你要找的吗?

library(tidyverse)

# create sample data
df <- tibble(A=rep(c(1:10),3), B=rep(c(Sys.Date(), NA),15))

df

       A B         
 1     1 2019-02-06
 2     2 NA        
 3     3 2019-02-06
 4     4 NA        
 5     5 2019-02-06
 6     6 NA        
 7     7 2019-02-06
 8     8 NA        
 9     9 2019-02-06
10    10 NA      
...

# grouping and summarising it for column A
df %>%
  mutate(count=ifelse(!is.na(B), 1, 0)) %>%
  group_by(A) %>%
  summarise(count=sum(count,na.rm=T))

       A count
 1     1     3
 2     2     0
 3     3     3
 4     4     0
 5     5     3
 6     6     0
 7     7     3
 8     8     0
 9     9     3
10    10     0

推荐阅读