-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.Rmd
94 lines (67 loc) · 2.96 KB
/
README.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
---
output: github_document
---
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
```
# whatsalyze <img src="inst/app/www/hex-whatsalyze.png" align="right" width="120" />
<!-- badges: start -->
[![R build status](https://github.com/EmanuelSommer/whatsalyze/workflows/R-CMD-check/badge.svg)](https://github.com/EmanuelSommer/whatsalyze/actions)
<!-- badges: end -->
Whatsalyze provides a shiny app to analyze your whatsapp chats! You can easily import your chats as exported `<chat>.txt` files and get some fun insights! `r emo::ji("detective")`
It is written using the golem framework for production-grade and robust shiny apps. The shiny app is embedded inside the structure of an R package which allows not only a concise and well structured workflow but also the integration of documentation (roxygen2) and tests (testthat).
## Online Demo
[*DEMO LINK*](https://esommer.shinyapps.io/whatsalyze/)
For local use see below!
## Installation
You can install the current version of `whatsalyze` from Github with:
``` r
# install.packages("devtools")
devtools::install_github("EmanuelSommer/whatsalyze")
```
## Usage locally
The nice thing about running this app locally is, that your sensible chat data does not leave the comfort of your own computer! And it is quite easy too! Just run the following in your R console:
``` r
whatsalyze::run_app()
```
## Input format
The input format for the `<chat>.txt` files should be the following:
```
31.01.20, 16:44 - User1: TextTextText
31.01.20, 16:46 - User2: TextTextText
11.02.20, 18:00 - User2: TextTextText
...
```
For more information on the input format see `rwhatsapp::rwa_read()`.
## Current features
- Overall stats
- Duration in days
- Longest chat streak
- Percentage of days chatted
- Total messages
- Total words
- Words per message
- Total media and voicemails (only if chat is exported in german as implemented with german regular expression)
- Messages per day
- Words per day
- Activity visualizations
- Activity by weekday
- Activity by hour and weekday
- Visualization of message and word frequencies by user
- Visualization of the frequency of conversation starters by user (after at least 5 days)
- Visualization of the frequency of the last man standing ;) (how often one wrote the last message before a conversation break of at least 4 days)
- Visualization of time vs messages sent per day (also by user)
- Density plots (Gaussian kernel variable bandwidth) of words and emojis per message by user respectively
- Boxplot of words and emojis per message by user respectively
- Visualization of the top 10 emojis used by user
- Compare key chat metrics (overall stats) from **multiple** chats in a tabular fashion
**If you have any suggestions for improvement or issues I would really like to hear from you!**
***
<center>
`r emo::ji("waving_hand")` Have fun! `r emo::ji("waving_hand")`
</center>