R语言实战-如何分析QQ群记录1-格式化数据
先对分析进行简单构思:
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-格式化数据相关推荐
- R语言实战-如何分析QQ群记录5-词云
library(tm) library(tmcn) library(rJava) library(Rwordseg) #install.packages('wordcloud') library(wo ...
- R语言︱异常值检验、离群点分析、异常值处理
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 笔者寄语:异常值处理一般分为以下几个步骤:异常 ...
- R语言亚组分析 (Subgroup Analysis)及森林图绘制实战
R语言亚组分析 (Subgroup Analysis)及森林图绘制实战 目录 R语言亚组分析 (Subgroup Analysis)及森林图绘制实战 #亚组分析
- 对比《学习R》PDF代码+《R语言实战第2版》PDF代码+《R数据科学》PDF代码分析
R语言是世界上最流行的用于数据处理和统计分析的脚本语言.考古学家用它来跟踪古代文明的传播,医药公司用它来探索哪种药物更安全.更有效,精算师用它评估金融风险以保证市场的平稳运行.总之,在大数据时代,统计 ...
- 计算机书籍-R语言机器学习预测分析实战
书名:机器学习与R语言实战 作者:丘祐玮 出版社:机械工业出版社 ISBN:9787111535959 去当当网了解
- 单因素方差分析——R语言实战
课题组的每个人都有实验任务,做实验的目的是为了获取实验数据,下一步就要进行数据分析,数据分析的方法各式各样.今天我给大家介绍,如何使用R语言进行单因素方差分析. 有人会问,什么是单因素方差分析? 试验 ...
- R语言实战笔记--第十二章 重抽样(置换检验)与自助法
R语言实战笔记–第十二章 重抽样(置换检验)与自助法 标签(空格分隔): R语言 重抽样 自助法 置换检验 置换检验 双样本均值检验的时候,假设检验的方法就是,检查正态性.独立性.方差齐性,分别对应的 ...
- R语言实战笔记--第九章 方差分析
R语言实战笔记–第九章 方差分析 标签(空格分隔): R语言 方差分析 术语 组间因子,组内因子,水平:组间因子和组同因子的区别是,组间因子对所有测试对象进行分组,而组内因子则把所有测试对象归为同一组 ...
- R语言实战笔记--第八章 OLS回归分析
R语言实战笔记–第八章 OLS回归分析 标签(空格分隔): R语言 回归分析 首先,是之前的文章,数理统计里面的简单回归分析,这里简单回顾一下: 简单回归分析的原理:最小二乘法,即使回归函数与实际值之 ...
最新文章
- 【Java】LeetCode 225. 用队列实现栈
- 删除排序链表中的重复元素
- 对于150kHz导航信号放大检波天线保护电路
- 一文详解超参数调优方法
- 连续对焦 auto对焦_如何在Windows 10上使用对焦辅助(请勿打扰模式)
- NET问答: 如何避免在 EmptyEnumerable 上执行 Max() 抛出的异常 ?
- 说普通话时舌头卷不起来是一种什么体验?| 今日最佳
- 每日一笑 | 程序员的招租公告
- css中em与px的介绍及换算方法
- 【教程】一步一步教你如何自定义设置——博客园canvas/JS交互动画背景
- 罗永浩抖音直播带货100天,糊了?
- java 词典 分词_java分词中 用户自定义词典有什么要求
- (4)ArcGIS 10.2 去除要素的Z值和M值
- css/js解决 页面多次点击时出现部分蓝色
- Holt-Winters
- 【阿里云】DCDN全站加速介绍及配置
- c语言调用tuxedo步骤,c语言入门之BCB客户端tuxedo开发实例
- 大数据之直播平台数据统计
- ROB 第一篇 DFS BFS (寻迹算法)
- 网盘防和谐姿势①:压缩包篇