如何验证数据框中的单词是否是 R 中的名称

How to validate whether a word in a dataframe is a name in R

我编写了一个 R 脚本来过滤数据并将其保存到新的数据框中。除其他外,它过滤最常用的词如下:

Word     Times
Oliver    3
Great     8
Jacob     2
Fantastic 6

在给定名称列表的情况下,R 中是否有一种方法可以过滤最后一个数据框看起来像这样?

(获取名字,对它们进行计数,然后将它们添加到名为 names 的新行中,该行计算所有名字出现的次数)

Word     Times
Names     5 # Oliver [3] + Jacob [2]
Great     8
Fantastic 6

我使用 x 而不是 names

基础R方式

x <-  c('oliver','jacob','harry', 'jack')

y <- sum(df$Times[df$Word %in% x])
rbind(c("names", y), df[!(df$Word %in% x), ])

       Word Times
1     names     5
2     great     8
4 fantastic     6

一个dplyr解决方案

names <- c('oliver','jacob','harry', 'jack')

df %>% 
     summarize_each(funs(ifelse(Word %in% names, "names", .))) %>%
     group_by(Word) %>% 
     summarize(sum(Times))

# A tibble: 3 × 2
  Word      `sum(Times)`
  <chr>            <dbl>
1 fantastic            6
2 great                8
3 names                5