【问题标题】:Building PivotTable in R在 R 中构建数据透视表
【发布时间】:2017-03-14 16:11:35
【问题描述】:

这是我的示例数据集:

library(dplyr)
Singer <- c("A","B","C","A","B","D")
Rank <- c(1,2,3,3,2,1)
data <- data_frame(Singer,Rank)

我想构建一个数据透视表来显示每个歌手排名 1、2、3 的次数。行应该是“1”、“2”和“3”,而列应该是“A”、“B”、“C”和“D”。该值将是次数。

我尝试使用summarise(group_by(kw,Singer.Vote),count=n())。但它没有具体说明歌手。

【问题讨论】:

  • 歌手D怎么样?
  • "D" 也应该在那里。谢谢

标签: r pivot-table data-manipulation


【解决方案1】:

随便用

t(table(data))

给了

    Singer
Rank A B C D
   1 1 0 0 1
   2 0 2 0 0
   3 1 0 1 0

【讨论】:

    【解决方案2】:

    也许这对你有用:

    library(tidyverse)
    
    df <- data %>% group_by(Singer, Rank) %>%
          summarize(times = n()) %>% spread(Singer, times)
    

    【讨论】:

      【解决方案3】:

      使用管理员包中的tabyl。结果是一个 data.frame 并具有 0 而不是 NA ,其中数据中没有出现任何组合。

      library(janitor)
      
      data %>%
        tabyl(Rank, Singer)
      
       Rank A B C D
          1 1 0 0 1
          2 0 2 0 0
          3 1 0 1 0
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-20
        • 1970-01-01
        • 2021-12-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多