根据条件和字符总数计算两个不同字符的出现次数

  • 本文关键字:字符 两个 条件 计算 r
  • 更新时间 :
  • 英文 :


我试图在同一天为同一名称查找A和B的分类,并计算同一天的B分类总数。

我在下面附上了一个示例数据集和文章。我试图回答的问题是";有多大比例的B有相关的A&";,其也将回答"否";有多少百分比的B没有相关的A">

2022-01-01年,John Doe被分为A级和B级。Bruce Wayne也有B分类,但没有关联的a。输出应该显示a和B一起发生的1个实例和B发生的2个实例。

Date <- c("2022-01-01","2022-01-01","2022-01-01","2022-01-02","2022-01-02","2022-01-02", "2022-01-02")
Name <- c("John Doe","John Doe","Peter Parker","Bruce Wayne","Bruce Wayne","Lebron James", "Jane Doe")
Classification <- c("A","B","B", "B", "A", "B", "B")

df <- data.frame(Date,Name,Classification)
df
date_output <- c("2022-01-01", "2022-01-02")
b_and_a_output <- c(1,2)
daily_total_b_output <- c(1,3)
desired_output <- data.frame(date_output, b_and_a_output, daily_total_output)
desired_output

可能有一百万种方法可以实现这一点,但这里是计算值共现的旧crossprod技巧:

library(dplyr)
df %>%
group_by(Date) %>%
summarise(
tmp = list(crossprod(table(Name, Classification))),
a_and_b = tmp[[1]]["A","B"],
total_b = tmp[[1]]["B","B"]
) %>%
select(-tmp)
## A tibble: 2 x 3
#  Date       a_and_b total_b
#  <chr>        <dbl>   <dbl>
#1 2022-01-01       1       2
#2 2022-01-02       1       3

最新更新