这是我的样本数据集

sample <- structure(list(Week  = c(1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2),
                         Project = c("A", "A", "A",  "A",  "B",  "B",  "B",  "B",  "C",  "C",  "C",  "A", "A",   "A" ), 
                    Status= c( "Active","Rescheduled","Active", "Cancelled", "Active", "Cancelled",  "Cancelled", 
                               "Rescheduled",  "Active",  "Active",   "Rescheduled", "Cancelled", "Cancelled", "Active")),
                    .Names = c("Week","Project","Status"),
                      class = "data.frame" , row.names = c(NA, -14L))
> sample
   Week Project      Status
1     1       A      Active
2     1       A Rescheduled
3     1       A      Active
4     1       A   Cancelled
5     1       B      Active
6     1       B   Cancelled
7     1       B   Cancelled
8     1       B Rescheduled
9     2       C      Active
10    2       C      Active
11    2       C Rescheduled
12    2       A   Cancelled
13    2       A   Cancelled
14    2       A      Active

我想创建一个数据框架,按周计算每个程序的有效率和1-有效率(=非有效率),值为"NA"

所以桌子看起来是这样的

  Week A_active_rate A_Non_active_rate B_active_rate B_Non_active_rate C_active_rate C_Non_active_rate
1    1          0.50              0.50          0.25              0.75            NA                NA
2    2          0.33              0.67            NA                NA          0.67              0.33

推荐答案

另一种tidyverse方法:

library(dplyr)
library(tidyr)

sample %>%
  summarize(
    active_rate = mean(Status == "Active"),
    Non_active_rate = 1 - active_rate,
    .by = c(Week, Project)
  ) %>%
  pivot_wider(
    names_from = Project,
    values_from = active_rate:Non_active_rate,
    names_glue = "{Project}_{.value}",
    names_vary = "slowest"
  )
# # A tibble: 2 × 7
#    Week A_active_rate A_Non_active_rate B_active_rate B_Non_active_rate C_active_rate C_Non_active_rate
#   <dbl>         <dbl>             <dbl>         <dbl>             <dbl>         <dbl>             <dbl>
# 1     1         0.5               0.5            0.25              0.75        NA                NA    
# 2     2         0.333             0.667         NA                NA            0.667             0.333

R相关问答推荐

使用预定值列表将模拟数量(n)替换为rnorm()

r中的stat_difference函数不起作用

在位置周围设定一个半径并识别该半径内的其他位置

为什么st_join(ob1,ob2,left = True)返回具有比ob1更多功能的sf对象?

用derrr在R中查找组间的重复项

根据多个条件增加y轴高度以适应geom_text标签

在R中为马赛克图中的每个字段着色

将饼图插入条形图

以更少间隔的较小表中的聚合离散频率表

根据类别合并(汇总)某些行

按多列统计频次

跨列查找多个时间报告

将数据集旋转到长格式,用于遵循特定名称模式的所有变量对

如何将这个小列表转换为数据帧?

以不同于绘图中元素的方式对GG图图例进行排序

如何调整一个facet_work()面板内的框图和移动标签之间的水平宽度?

注释不会绘制在所有ggplot2面上

Broom.Mixed::Augment不适用于Sample::分析

R/shiny APP:如何充分利用窗口?

如何准确地指出Read_delim所面临的问题?