r - 计算R中单词的出现次数,总单词和总唯一单词
问题描述
我有一个巨大df
的,它有一个doc_id
and word
,每个都word
可以包含多个class(Class_1,Class_2,Class_3 )
,所以如果一个词在class
我放在1
那里,或者如果不是那么0
样本 DF
doc_id word Class_1 Class_2 Class_3
104 saturn 1 0 1
104 survival 1 1 0
104 saturn 1 0 1
104 car 0 1 0
118 baseball 1 1 0
118 color 0 0 1
118 muscle 0 1 0
187 image 1 0 0
187 pulled 0 0 0
187 game 1 0 1
187 play 0 0 1
187 game 1 1 0
125 translation 1 0 0
125 survival 0 1 0
125 input 1 0 1
125 excellent 1 0 0
142 nice 0 1 0
142 article 0 1 0
142 original 1 0 1
142 content 0 1 0
现在使用这个sample DF
我想计算incount
的出现次数。
每个 中的总字数,例如所有文档中的总字数
和最后总字数。word
class(Class_1,Class_2,Class_3)
class(Class_1,Class_2,Class_3)
eg:
words
Class_1
unique words
OUTPUT DF应该是这样的
doc_id word Occ_1 Occ_2 Occ_3 Totl_1 Totl_2 Totl_3 Unique_words
104 saturn 2 0 2 11 9 7 17
104 survival 1 2 0 11 9 7 17
104 car 0 1 0 11 9 7 17
118 baseball 1 1 0 11 9 7 17
118 color 0 0 1 11 9 7 17
118 muscle 0 1 0 11 9 7 17
187 image 1 0 0 11 9 7 17
187 pulled 0 0 0 11 9 7 17
187 game 2 1 1 11 9 7 17
187 play 0 0 1 11 9 7 17
125 translation 1 0 0 11 9 7 17
125 input 1 0 1 11 9 7 17
125 excellent 1 0 0 11 9 7 17
142 nice 0 1 0 11 9 7 17
142 article 0 1 0 11 9 7 17
142 original 1 0 1 11 9 7 17
142 content 0 1 0 11 9 7 17
鉴于
Occ_1
= 其他单词中出现的单词数Class_1
和相同Class_2
以及Class_3
Totl_1
= 其他单词中相同的总单词Class_1
数Class_2
和Class_3
Unique_words
= 所有文档中唯一单词的总数
解决方案
使用dplyr
,您可以运行以下行:
library(dplyr)
data %>%
group_by(word) %>%
summarise(
doc_id = first(doc_id),
Occ_1 = sum(Class_1),
Occ_2 = sum(Class_2),
Occ_3 = sum(Class_3)
) %>%
arrange(doc_id, word) %>%
mutate(
Totl_1 = sum(Occ_1),
Totl_2 = sum(Occ_2),
Totl_3 = sum(Occ_3),
Unique_words = n()
)
输出
word doc_id Occ_1 Occ_2 Occ_3 Totl_1 Totl_2 Totl_3 Unique_words
<chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <int>
1 car 104 0 1 0 11 9 7 17
2 saturn 104 2 0 2 11 9 7 17
3 survival 104 1 2 0 11 9 7 17
4 baseball 118 1 1 0 11 9 7 17
5 color 118 0 0 1 11 9 7 17
6 muscle 118 0 1 0 11 9 7 17
7 excellent 125 1 0 0 11 9 7 17
8 input 125 1 0 1 11 9 7 17
9 translation 125 1 0 0 11 9 7 17
10 article 142 0 1 0 11 9 7 17
11 content 142 0 1 0 11 9 7 17
12 nice 142 0 1 0 11 9 7 17
13 original 142 1 0 1 11 9 7 17
14 game 187 2 1 1 11 9 7 17
15 image 187 1 0 0 11 9 7 17
16 play 187 0 0 1 11 9 7 17
17 pulled 187 0 0 0 11 9 7 17
我添加了一个arrange
函数,以便按doc_id
和对数据集进行排序word
,否则输出数据集将按字母顺序排序word
。
推荐阅读
- python - 最小化涉及大型加权矩阵的平方和的最快方法
- android - Flutter:适用于 Windows / Linux 的 iOS 模拟器来运行 Flutter 应用程序?
- azure - (Microsoft Academic Knowledge Exploration Service)DeployHost 过程中需要帮助
- r - ggplot轴标签r中的撇号和上标
- email - 邮件跟踪器如何使收件人和发件人的原始电子邮件不同?
- javascript - Firebase firebase.app().options 返回 Object {}
- java - 从 Fragment 到 MainActivity 的按钮 OnClick
- python - 如何为字典中的键分配多个值
- excel - 将单元格中的信息插入代码
- google-sheets - 计算 SUM() 或类似函数时将跳过一列的公式