代码之家  ›  专栏  ›  技术社区  ›  windyvation

如何将日期放在r中输出的顶部列中

r
  •  -1
  • windyvation  · 技术社区  · 6 年前

    我有三列数据

    Category Date Value
    A 10/12/2018 1
    A 10/14/2018 2
    B 10/12/2018 3
    B 10/13/2018 4
    C 10/12/2018 5
    C 10/14/2018 6
    

    如何转换输出,使输出的顶部有这样的日期并对类别进行分组?

       10/12/2018 10/13/2018 10/14/2018
    A     1                      2
    B     3           4
    C     5                      6
    

    我试过搜索交叉表和一些基本的R函数,感谢您对此的想法。

    2 回复  |  直到 6 年前
        1
  •  1
  •   JMT2080AD    6 年前

    你想要的是“宽”格式。在R中有许多包和方法可以执行这种类型或格式化。孙冰冰,指着 dplyr 方法。我更喜欢 data.table 方法。

    ## loading your data here
    library(readr)
    x <- read_delim("Category Date Value
    A 10/12/2018 1
    A 10/14/2018 2
    B 10/12/2018 3
    B 10/13/2018 4
    C 10/12/2018 5
    C 10/14/2018 6", delim = " ")
    
    ## casting your data to wide format
    library(data.table)
    xcast <- dcast(x, Category~Date, value.var = "Value")
    xcast
    

    回报…

      Category 10/12/2018 10/13/2018 10/14/2018
    1 A         1         NA          2
    2 B         3          4         NA
    3 C         5         NA          6
    
        2
  •  1
  •   MLavoie    6 年前

    这是一个整形问题。

    library(tidyr)
    
    df %>% spread(Date,Value)
    
      Category 10/12/2018 10/13/2018 10/14/2018
    1        A          1         NA          2
    2        B          3          4         NA
    3        C          5         NA          6