嗨,我有下一个数据帧
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计数发生次数
我只是找到了一种用于总体计数频率的解决方案,但没有将出现的次数转到其自己的列中,而是将计数放在其自己的列中。
答案 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创建