Как подсчитать количество вхождений значений нескольких символов в R? - PullRequest
0 голосов
/ 08 мая 2019

Предположим, у меня есть фрейм данных "df", который выглядит так:

Item  |  Tech
  1       F23
  1       F32
  2       F23
  2       C27
  2       C76
  3       A21 

и у меня есть вектор "c" со всеми техническими кодами:

Number  |   Tech
  1          A01
  2          F23
  3          C27
  4          C76
  5          A21
  6          E17

Как я могу посчитать количество предметов, которые используют одну и ту же технологию, для каждой технологии в векторе ниже? (также сообщая ноль при необходимости).

Number  |   Tech  |  Count in Item
  1          A01          0
  2          F23          2
  3          C27          1
  4          C76          1
  5          A21          0
  6          E17          0

Фрейм данных "df" и вектор "c" очень длинные, поэтому я хочу иметь быстрый способ получить эту последнюю таблицу.

Ответы [ 2 ]

0 голосов
/ 08 мая 2019

Один из вариантов - преобразовать df$Tech в factor с тем же level, что и c$Tech, а затем использовать table для подсчета частоты.

df$Tech <- factor(df$Tech, levels = c$Tech) 
c$count <- table(df$Tech[df$Tech %in% c$Tech])

c
#  Number Tech count
#1      1  A01     0
#2      2  F23     2
#3      3  C27     1
#4      4  C76     1
#5      5  A21     1
#6      6  E17     0
0 голосов
/ 08 мая 2019

Вы можете использовать dplyr, чтобы получить это значение как:

library(dplyr)
df %>%
  group_by(Tech) %>%
  summarise(Count = n()) %>%
  right_join(c, by = "Tech") %>%
  mutate(Count = ifelse(is.na(Count), 0, Count))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...