如何验证数据框中的单词是否是 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
我编写了一个 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