【问题标题】:R, Shiny - create Crosstab counting specific value with filtersR,Shiny - 使用过滤器创建交叉表计数特定值
【发布时间】:2020-01-24 16:14:20
【问题描述】:

我在 SSMS 中有一个表,我正在查询它以尝试在 R 中生成一个 Crosstab 表,Shiny。这是我的示例数据:

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)

我喜欢表格在 DT 中的外观以及它附带的排序和过滤功能。如果可能的话,我想在交叉表中使用类似的功能。

【问题讨论】:

    标签: r shiny crosstab dt


    【解决方案1】:

    我通过在我的 SQL 查询中创建一个 concat 字段来解决此问题,以输出带有 COUNT(Flipped) 的 U 或 P,然后将其输出到 R 中,如下所示:

    dcast(df, HouseNum + SwitchNum ~ Date, value.var = "Flipped", fun.aggregate = toString)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-10
      • 2014-09-24
      • 2019-07-18
      • 2019-05-04
      相关资源
      最近更新 更多