R,Shiny - 创建交叉表,使用过滤器计算特定值
R, Shiny - create Crosstab counting specific value with filters
我在 SSMS 中有一个 table,我正在查询它以尝试在 R, Shiny 中生成一个交叉表 table。这是我的示例数据:
HouseNum SwitchNum Date Flipped
1 123 2/26/2019 U
1 123 2/26/2019 D
1 123 2/26/2019 U
1 123 2/26/2019 D
1 123 2/26/2019 U
1 456 2/26/2019 U
1 456 2/26/2019 D
1 456 3/1/2019 U
1 789 3/6/2019 U
1 789 3/6/2019 D
1 123 3/8/2019 U
1 123 3/8/2019 D
1 123 3/8/2019 U
1 123 3/8/2019 D
2 1122 3/8/2019 U
2 1122 3/8/2019 D
2 1122 3/8/2019 U
2 3344 3/9/2019 U
2 3344 3/9/2019 D
2 3344 3/10/2019 U
2 3344 3/10/2019 D
我们有带电灯开关的房子。我们记录它们何时被向上(U)和向下(D)翻转。我的目标是在 R 中生成一个交叉表,将 HouseNum 和 SwitchNum 分组,并计算开关在每个日期打开和关闭的次数。它最终会显示:
HouseNum SwitchNum 2/26/2019 3/1/2019 3/6/2019 3/8/2019 3/9/2019 3/10/2019
1 123 U(3),D(2) U(2),D(2)
1 456 U(1),D(1) U(1)
1 789 U(1),D(1)
2 1122 U(2),D(1)
2 3344 U(1),D(1) U(1),D(1)
这是我目前使用的图书馆:
library(dplyr)
library(DBI)
library(plotly)
library(shiny)
library(shinydashboard)
library(RJDBC)
library(readxl)
library(DT)
library(htmltools)
library(shinyBS)
下面是我尝试创建此交叉表的方法:
library(xtable)
library(reshape)
library(rpivotTable)
library(ggplot2)
library(tidyr)
library(reshape2)
我喜欢 table 在 DT 中的外观以及它附带的排序和过滤功能。如果可能,我想在交叉表中使用类似的功能。
我通过在我的 SQL 查询中创建一个 concat 字段来解决这个问题,以使用 COUNT(Flipped) 输出 U 或 P,然后在 R 中输出它,如下所示:
dcast(df, HouseNum + SwitchNum ~ Date, value.var = "Flipped", fun.aggregate = toString)
我在 SSMS 中有一个 table,我正在查询它以尝试在 R, Shiny 中生成一个交叉表 table。这是我的示例数据:
HouseNum SwitchNum Date Flipped
1 123 2/26/2019 U
1 123 2/26/2019 D
1 123 2/26/2019 U
1 123 2/26/2019 D
1 123 2/26/2019 U
1 456 2/26/2019 U
1 456 2/26/2019 D
1 456 3/1/2019 U
1 789 3/6/2019 U
1 789 3/6/2019 D
1 123 3/8/2019 U
1 123 3/8/2019 D
1 123 3/8/2019 U
1 123 3/8/2019 D
2 1122 3/8/2019 U
2 1122 3/8/2019 D
2 1122 3/8/2019 U
2 3344 3/9/2019 U
2 3344 3/9/2019 D
2 3344 3/10/2019 U
2 3344 3/10/2019 D
我们有带电灯开关的房子。我们记录它们何时被向上(U)和向下(D)翻转。我的目标是在 R 中生成一个交叉表,将 HouseNum 和 SwitchNum 分组,并计算开关在每个日期打开和关闭的次数。它最终会显示:
HouseNum SwitchNum 2/26/2019 3/1/2019 3/6/2019 3/8/2019 3/9/2019 3/10/2019
1 123 U(3),D(2) U(2),D(2)
1 456 U(1),D(1) U(1)
1 789 U(1),D(1)
2 1122 U(2),D(1)
2 3344 U(1),D(1) U(1),D(1)
这是我目前使用的图书馆:
library(dplyr)
library(DBI)
library(plotly)
library(shiny)
library(shinydashboard)
library(RJDBC)
library(readxl)
library(DT)
library(htmltools)
library(shinyBS)
下面是我尝试创建此交叉表的方法:
library(xtable)
library(reshape)
library(rpivotTable)
library(ggplot2)
library(tidyr)
library(reshape2)
我喜欢 table 在 DT 中的外观以及它附带的排序和过滤功能。如果可能,我想在交叉表中使用类似的功能。
我通过在我的 SQL 查询中创建一个 concat 字段来解决这个问题,以使用 COUNT(Flipped) 输出 U 或 P,然后在 R 中输出它,如下所示:
dcast(df, HouseNum + SwitchNum ~ Date, value.var = "Flipped", fun.aggregate = toString)