大家用 R 语言做过哪些好玩的事情?

关注者
1,472
被浏览
191,092
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

用来分析聊天记录呀!

因为专业的原因 要学一点统计 导师疯狂安利R语言

学了点皮毛之后 我就用它来不务正业了

还是很有趣的 (关键是简单啊 发出文科菜鸡的声音)

分享一下操作过程

知乎好像复制不了图片 这是我在另一个回答下的链接zhihu.com/question/6248

  1. 导出聊天记录

微信电脑版自带聊天记录备份功能,连上手机备了半天提出来了,却发现文件类型是很奇怪的DB,一般电脑根本打不开。百度后我下了一个UltraEdit 转码破解软件,然并卵。经我多方探听了解到,这个文件是被腾讯加密过的,只有腾讯能打开,私人则无法提取文本。

说来你可能不信,你的微信聊天记录可以被腾讯读取,用来做什么“xx年微信指数分析”,而你自己不行。

此处省略弯路之一二三四。

我唯一成功的办法:通过imazing 备份(虽然一般认为imazing和itunes差不多,但只有它成功了),备份成功后,找到微信聊天记录的文件Documents MM.sqlite,拷贝再用SQLite读取。微信把所有的聊天记录放在一块儿,打开备份文件之后的界面是这样的:

每个人的聊天记录由不同的代码表示,要在几百条字符串中找到特定的人——我真的是边哭边找的。

2. 数据导入与分析

由于聊天记录是用SQLite打开的,理所当然,我首先尝试着将R语言连接到SQLite数据库,连接失败,原因未知(因为我很快发现SQLite可以将文本导出成Excel格式)。

R语言读取Excel文件要下载相应的包,官方和各大论坛给出的方法都是下xlsx包,麻烦就算了速度还慢。正确方式是将文本转成CSV格式再读取。如果遇到无法转格式的数据,亲测openxlsx包比xlsx包好用。

随便提一嘴,SQLite的时间戳和Excel是不一样的(天知道SQLite的时间戳为什么是1970年?),因此要另找相应的公式进行时间日期转换。

SQLite 导出的聊天记录只有时间和内容,所以只对这两项进行分析。下面是每一步操作的代码,#号后的中文是我后期加的注释。


3. 可视化&结果

R语言最大的优点之一就是绘图。除了自带的plot函数,还可以用ggplot2包来画图表。wordcloud2包用于画词云图。

结果:

两年零两个月(我大二时换过手机)

31698行

25万+字节。


聊天内容:

提取了前500个高频词做词云,生成词云图。

我换了张更大的图,以便容纳更长的字节,并提取前一千条做词云。

好大的“哈哈哈哈”


聊天时间:

明显集中在晚上,尤其22点之后。

我分离出凌晨1点之后的聊天信息,想看看我们大半夜的不睡觉在聊啥。

“讨论”、“问题”、“模辩”、“通知”,都是辩论队的事情。

“输”、“难过”、“吃饭”,总是输比赛,输了还要出去吃饭。

谈公事的熬夜不算熬夜!

END!!


看起来是不是很简单!本菜鸡搞这个搞了一个星期 梦里都是代码: )

还是偷偷膜一发理工科大佬吧

ps:做这个是为了给朋友祝贺生日 现在已经是男朋友啦哈哈哈: )