按ID计算列和组中的出现次数

时间:2019-05-13 14:42:35

标签: r dplyr plyr

嗨,我有下一个数据帧

  user_id webpage
       1  google
       1    bing
       2  google
       2  google
       2   yahoo

我想创建一个这样的结果数据框

user_id  google  bing  yahoo
   1       1       1     0
   2       2       0     1

它按ID计数发生次数

我只是找到了一种用于总体计数频率的解决方案,但没有将出现的次数转到其自己的列中,而是将计数放在其自己的列中。

1 个答案:

答案 0 :(得分:1)

这是一个tidyverse解决方案。

# Create data frame
df <- read.table(text = "  user_id webpage
       1  google
       1    bing
       2  google
       2  google
       2   yahoo", header = TRUE)

# Load libraries
library(dplyr)
library(tibble)
library(tidyr)

# Count and restructure
as_tibble(table(df)) %>% spread(webpage, n)
#> # A tibble: 2 x 4
#>   user_id  bing google yahoo
#>   <chr>   <int>  <int> <int>
#> 1 1           1      1     0
#> 2 2           0      2     1

reprex package(v0.2.1)于2019-05-13创建