拆分一个字符串并找到出现的百分比

Split a string and find the occurrence percentage

我有一个矢量值,其中分隔符是 ',我想找到每个文本的出现。如何解决这个问题?非常感谢。

val1 <- c("ab, cd, ef", "", "gh", "ab")

预期答案

 ab   cd   ef  gh
 40%  20% 20%  20%
library(tidyverse)
val1 %>%
  str_split(pattern = ", ") %>% 
  unlist %>% 
  tibble(strings = . ) %>% 
  filter(strings != "") %>% 
  count(strings) %>% 
  mutate(perc = n / sum(n))

# A tibble: 4 x 3
  strings     n  perc
  <chr>   <int> <dbl>
1 ab          2   0.4
2 cd          1   0.2
3 ef          1   0.2
4 gh          1   0.2

在基数 R 中:

tab <- table(trimws(unlist(strsplit(val1, ","))))
100 * tab / sum(tab)
#> 
#> ab cd ef gh 
#> 40 20 20 20

reprex package (v2.0.1)

创建于 2022-05-10