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语言 回归分析 首先,是之前的文章,数理统计里面的简单回归分析,这里简单回顾一下: 简单回归分析的原理:最小二乘法,即使回归函数与实际值之 ...
最新文章
- [Life Sciences.AI]专栏介绍及内容分类(持续更新......)
- 191027爬虫笔记
- 关于各种回归评价指标MSE、RMSE、MAE、R-Squared、Standard Deviation(标准差)
- 每日一博 - 延时任务的多种实现方式解读
- 也玩有道难题的双立方数问题:Python 版解法
- Django从理论到实战(part31)--Django数据库查询操作
- 使用svnsync同步svn
- 物联网大数据平台应具备的功能和特点
- Uep的ajaxform和ajaxgrid组件获取数据源
- TIP 2021论文:多曝光图像融合及超分辨的联合实现
- 【渝粤题库】陕西师范大学500017 基础物理专题(光、近代)作业
- thinkphp3.2.3 bug集锦
- 作为开发人员,U盘32G太小了,256G才够用
- jupyter nootbook支持matlab语言
- Photoshop 2021下载链接 百度网盘
- mysql asc_mysql – 在字符串列上使用asc和desc的索引
- 24个足以改变事业的商业妙想
- KMplayer字幕
- 字符串百分号 c语言,C语言 输出百分号(%)的方法
- JavaSE_05【数组】拓展练习
热门文章
- 直击智能语音行业痛点,腾讯云小微云函数助力AI语音落地
- 【3维视觉】ShapeNet数据集介绍
- Java_处理英文句子
- 《斜杠青年:如何开启你的多重身份》读书笔记
- 2020年中考英语计算机考试,2020年北京首次中考英语听说机考,快递入考题 考生:难度适中...
- SCI投稿技巧:教你引用文献的正确姿势
- VisualStudio2015创建项目没有Wizards/MyrainSDK怎么办等问题
- 【微信小程序】解决canvas组件永远在最高层问题
- 解决VS2010不能正确加载 'VSTS for Database Professionals Sql Server Data-tier Application
- redis修改配置重启命令_如何从命令行更改Redis的配置