IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> R语言入门学习笔记-数据抽取01-字段拆分 -> 正文阅读

[人工智能]R语言入门学习笔记-数据抽取01-字段拆分

目录

1.字段拆分

1.1按照位置拆分

?1.2按照分隔符拆分

?1.3时间属性抽取


数据抽取,也称数据拆分,是指保留、抽取元数据表中的某些记录、字段的部分信息,形成一个新字段、新记录的过程,主要的方法有字段拆分、记录抽样和随机抽样。

1.字段拆分

字段拆分,是指抽取某一字段的部分信息,形成一个新字段的方法。

实际应用举例:

某公司会员表里记录了身份证信息,其中包含很多信息,如籍贯省份、籍贯城市、出生日期、性别等,如果将他们从身份证这个字段中抽取出来,就可以得到相应的新字段,也就可以进行相应的分析,如会员籍身份分布等,甚至可以根据出生日期进行进一步处理,得到年龄、星座、生肖字段。

字段拆分常用的方法有按照位置拆分、按照分隔符拆分,以及时间属性抽取

1.1按照位置拆分

例如,电话号码19800198000的第一位到第三位198,是某个运行商的号码段;第四位到第七位0019,是某个地区的号码段;第八位到第十一位8000,是用户的编号。在了解这个规则信息后,就可以采用按照位置拆分的方法,获取运营商号码段、地区号码段两个新字段。

在R语言中,使用substr函数对字段按位置进行抽取。如下面的例子

#字段拆分
data = read.csv('C:/Users/ABC/Desktop/书籍源代码和配套资源/谁说菜鸟不会数据分析(R语言篇)--数据/第四章/4.4.1 字段拆分/字段拆分.csv')
#该数据有9个电话号码
#将数值型的tel列转化为字符型
data$tel = as.character(data$tel)
#运营商
data['brands']=substr(x=data$tel,start=1,stop=3)
#地区
data['areas']=substr(x=data$tel,start=4,stop=7)
#号码段
data['nums']=substr(x=data$tel,start=8,stop=11)

?1.2按照分隔符拆分

在R语言中,需要用到stringer包中的str_split_fixed()函数。

例如,该数据框中只有一列name(商品标题),现在需要使用字段拆分的方法吧name(商品标题)列拆分为两列:第一列为brand(商品品牌),第二列为commodity_name(商品名称)。

#导入数据
data1=read.csv('C:/Users/ABC/Desktop/书籍源代码和配套资源/谁说菜鸟不会数据分析(R语言篇)--数据/第四章/4.4.1 字段拆分/分隔符.csv',
               fileEncoding="utf8",
               stringsAsFactors=FALSE)
#安装stringr包,加载包
install.packages("stringr")
library(stringr)
#使用空格分隔符将商品标题拆分为品牌名称和商品名称,参数n设置为2
newData=str_split_fixed(string = data1$name,pattern = ' ',n=2)
#重命名列
colnames(newData)=c('brand','commodity_name')

?

?1.3时间属性抽取

时间属性抽取,是从时间型数据中,抽取出需要的部分时间属性,如年、月、日、时、分、秒等。例如,需要按年统计销售额,就要从销售入去中抽取出年份属性,再按年份分组统计销售额。

在时间性数据的列后面加上对应的属性名即可完成抽取,具体的时间数据属性如表

属性说明
year

年,自1900年开始的年数

mon

月,用0到11代表1到12月

mday日,1~31
hour时,0~23
min分,0~59
sec秒,0~61
wday一周内的第几天(从周日开始计数),用0~6代表1~7天
yday一年内的第几天,用0~365代表第1~366天

例如,把年、月、周、日、时、分、秒这7个常用的时间属性抽取出来,并作为新的列加入data2数据框,代码如下:

?首先导入数据,用strptime函数把时间字符列转为“时间型”的数据,然后赋值给“时间”列。

#导入数据
data2=read.csv('C:/Users/ABC/Desktop/书籍源代码和配套资源/谁说菜鸟不会数据分析(R语言篇)--数据/第四章/4.4.1 字段拆分/时间属性.csv',
               fileEncoding="utf8",
               stringsAsFactors=FALSE)
#把注册时间列转换位时间型的数据,然后赋值给“时间”列
data2$时间=strptime(
  data2$注册时间,
  format='%Y/%m/%d %H:%M:%S')

#抽取时间的各种属性,新增到对应的列中
data2$年=data2$时间$year+1990
#因为年份是从1900年开始计数的,所以要加上1900
data2$月=data2$时间$mon+1
#因为月份是从0开始计数的,要加1
data2$周=data2$时间$wday
data2$日=data2$时间$mday
data2$时=data2$时间$hour
data2$分=data2$时间$min
data2$秒=data2$时间$sec

?

?数据代码等来自书《谁说菜鸟不会数据分析-R语言篇》

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-12-28 22:55:34  更:2021-12-28 22:55:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 3:31:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码