在 R 中构建数据透视表

Building PivotTable in R

这是我的示例数据集:

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())。但它没有指定歌手。

也许这对你有用:

library(tidyverse)

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

只需使用

t(table(data))

这给出了

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

使用 janitor 包中的 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