先对分析进行简单构思:

1、搜集并格式化数据

  a、搜集QQ群记录-从QQ导出txt文档,筛选出需要统计的QQ群记录信息。

  b、导入QQ群记录信息,根据\n换行符读取每一行的信息。

  c、逐行读取,利用正则表达式判断该行是否是时间行,是的话进行切割,分割出时间和昵称,该行的下一行则为聊天信息。

  d、把时间、昵称、聊天信息统一放到一个数据框中。

#导入QQ群记录
#stringsAsFactors=F 不转换为因子
#encoding="UTF-8" 读取编码为UTF-8
#sep="\n"换行读取
jilu<- read.table("QQ群记录.txt",stringsAsFactors=F,encoding="UTF-8",sep="\n",quote = NULL)#定义data数据框,后面读取jilu中的数据需要添加在里面
#定义几个临时变量,dateTime,name,des
data<-data.frame(dateTime=c(),user_name=c(),user_des=c(),stringsAsFactors = F)
dateTime <- character()
name <-character()
des<-character()#获取jilu的行数,[1]代表行,[2]代表列
rCount<-dim(jilu)[1]count <- 1
for(i in 1:rCount){#利用正则表达式,判断是否是时间行#下面表达式代表2017-06-29 13:42:35格式#[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]+:[0-9]+:[0-9]+#当该行满足表达式的时候,reg为满足的时间第一个字符所在的位置,不满足否则为-1reg <- regexpr("[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]+:[0-9]+:[0-9]+",jilu[i,])#因为聊天记录特殊性,只有满足表达式并且第一个字符就是时间的行才为真实的时间行if(reg==1){#计算昵称开始的位置=时间起始位置+时间长度+1#"match.length"在执行dt_pattern会自动显示这个为满足条件时间的长度#接上面,如果单独attr()使用的话,则是attr(已执行的正则,"match.length")获取在该正则中满足条件的字符长度user_begin=reg+attr(reg,"match.length")+1#计算昵称结束位置=该条记录长度,因为昵称都是写在最后的,nchar()计算字符串的长度user_end=nchar(jilu[i,])#获取昵称,substring(被截取的字符串,截取起点,截取终点)name <- substring(jilu[i,],user_begin,user_end)#获取时间,具体规则如上面dt_begin <- regdt_end <- reg+attr(reg,"match.length")-1dateTime <-substring(jilu[i,],dt_begin,dt_end)#获取聊天信息des <- jilu[i+1,]#把昵称、时间、聊天信息加入data中#行合并,一行一行自动添加入data,列合并为:cbinddata <- rbind(data,data.frame(dateTime,name,des))}
}

  最终data数据如下:

转载于:https://www.cnblogs.com/xugege/p/7380212.html

R语言实战-如何分析QQ群记录1-格式化数据相关推荐

  1. R语言实战-如何分析QQ群记录5-词云

    library(tm) library(tmcn) library(rJava) library(Rwordseg) #install.packages('wordcloud') library(wo ...

  2. R语言︱异常值检验、离群点分析、异常值处理

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 笔者寄语:异常值处理一般分为以下几个步骤:异常 ...

  3. R语言亚组分析 (Subgroup Analysis)及森林图绘制实战

    R语言亚组分析 (Subgroup Analysis)及森林图绘制实战 目录 R语言亚组分析 (Subgroup Analysis)及森林图绘制实战 #亚组分析

  4. 对比《学习R》PDF代码+《R语言实战第2版》PDF代码+《R数据科学》PDF代码分析

    R语言是世界上最流行的用于数据处理和统计分析的脚本语言.考古学家用它来跟踪古代文明的传播,医药公司用它来探索哪种药物更安全.更有效,精算师用它评估金融风险以保证市场的平稳运行.总之,在大数据时代,统计 ...

  5. 计算机书籍-R语言机器学习预测分析实战

    书名:机器学习与R语言实战 作者:丘祐玮 出版社:机械工业出版社 ISBN:9787111535959 去当当网了解

  6. 单因素方差分析——R语言实战

    课题组的每个人都有实验任务,做实验的目的是为了获取实验数据,下一步就要进行数据分析,数据分析的方法各式各样.今天我给大家介绍,如何使用R语言进行单因素方差分析. 有人会问,什么是单因素方差分析? 试验 ...

  7. R语言实战笔记--第十二章 重抽样(置换检验)与自助法

    R语言实战笔记–第十二章 重抽样(置换检验)与自助法 标签(空格分隔): R语言 重抽样 自助法 置换检验 置换检验 双样本均值检验的时候,假设检验的方法就是,检查正态性.独立性.方差齐性,分别对应的 ...

  8. R语言实战笔记--第九章 方差分析

    R语言实战笔记–第九章 方差分析 标签(空格分隔): R语言 方差分析 术语 组间因子,组内因子,水平:组间因子和组同因子的区别是,组间因子对所有测试对象进行分组,而组内因子则把所有测试对象归为同一组 ...

  9. R语言实战笔记--第八章 OLS回归分析

    R语言实战笔记–第八章 OLS回归分析 标签(空格分隔): R语言 回归分析 首先,是之前的文章,数理统计里面的简单回归分析,这里简单回顾一下: 简单回归分析的原理:最小二乘法,即使回归函数与实际值之 ...

最新文章

  1. [Life Sciences.AI]专栏介绍及内容分类(持续更新......)
  2. 191027爬虫笔记
  3. 关于各种回归评价指标MSE、RMSE、MAE、R-Squared、Standard Deviation(标准差)
  4. 每日一博 - 延时任务的多种实现方式解读
  5. 也玩有道难题的双立方数问题:Python 版解法
  6. Django从理论到实战(part31)--Django数据库查询操作
  7. 使用svnsync同步svn
  8. 物联网大数据平台应具备的功能和特点
  9. Uep的ajaxform和ajaxgrid组件获取数据源
  10. TIP 2021论文:多曝光图像融合及超分辨的联合实现
  11. 【渝粤题库】陕西师范大学500017 基础物理专题(光、近代)作业
  12. thinkphp3.2.3 bug集锦
  13. 作为开发人员,U盘32G太小了,256G才够用
  14. jupyter nootbook支持matlab语言
  15. Photoshop 2021下载链接 百度网盘
  16. mysql asc_mysql – 在字符串列上使用asc和desc的索引
  17. 24个足以改变事业的商业妙想
  18. KMplayer字幕
  19. 字符串百分号 c语言,C语言 输出百分号(%)的方法
  20. JavaSE_05【数组】拓展练习

热门文章

  1. 直击智能语音行业痛点,腾讯云小微云函数助力AI语音落地
  2. 【3维视觉】ShapeNet数据集介绍
  3. Java_处理英文句子
  4. 《斜杠青年:如何开启你的多重身份》读书笔记
  5. 2020年中考英语计算机考试,2020年北京首次中考英语听说机考,快递入考题 考生:难度适中...
  6. SCI投稿技巧:教你引用文献的正确姿势
  7. VisualStudio2015创建项目没有Wizards/MyrainSDK怎么办等问题
  8. 【微信小程序】解决canvas组件永远在最高层问题
  9. 解决VS2010不能正确加载 'VSTS for Database Professionals Sql Server Data-tier Application
  10. redis修改配置重启命令_如何从命令行更改Redis的配置