R语言入门学习笔记

您所在的位置:网站首页 r语言从excel抽取数据 R语言入门学习笔记

R语言入门学习笔记

2023-10-26 14:02| 来源: 网络整理| 查看: 265

目录

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~31hour时,0~23min分,0~59sec秒,0~61wday一周内的第几天(从周日开始计数),用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语言篇》



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3