全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 数据分析与数据挖掘
926 0
2021-04-26
CDA人工智能学院致力于以优质的人工智能在线教育资源助力学员的DT职业梦想!课程内容涵盖数据分析机器学习深度学习人工智能tensorFlowPyTorch知识图谱等众多核心技术及行业案例,让每一个学员都可以在线灵活学习,快速掌握AI时代的前沿技术。PS:私信我即可获取CDA会员1个月免费试听机会

先介绍下融合和重铸能实现什么样的功能:
例子:想把表1—->>转换成为表2
表1:

表2:

R实现数据的透视功能,使用reshape2包中的melt()函数和dcast()函数。在《R语言实战》这本书中有着详细的介绍。我在这里引用了其中的一些内容。
首先是融合函数,融合顾名思义就是把原先的数据进行融化合并,具体melt()函数会融合成什么样的形式呢?
Library(reshape2)
Md=melt(mydata,id=c(“ID”,”Time”)
其中的参数id是用来唯一的确定观察值的,就行是sql中的主键一样。
其余没有纳入id的特征/属性都会被R默认为归为variable这个新生成的特征/属性中。最后一列就是对应的value。
这就是melt函数把原先的数据表融合后的形式。
把数据融合好之后,就可以进行数据的重铸了。重铸的函数式dcast()函数,d的含义在这里是dataframe的含义。
重铸成什么样式呢?
Newdata=dcast(md,formulate,fun.aggregate,fill=value)
其中formulate的形式如下:
Rowvar1+rowvr2+….=colvar1+colvar2+colvar3+…;公式的左边变量从melt中划出来用来作为重铸表的行变量,右边是确定重铸表的列变量,未在公式中的变量是当做值变量了。
Fun.aggrate函数是可选的数据整合函数,作用在重铸表的数值上面。
Fill=value ;其中fill参数是用来指定重铸后的表中缺失值使用什么数值来代替。

上面的例子的直接使用重铸就可以实现:
library(reshape2)
data <- read.csv(file = ” “,stringsAsFactors = F)
newdata <-dcast(data,用户~手机品牌)

在这里介绍一下管道函数我感觉是非常好用的在R中。因为管道函数的出现使得R中避免生成过多的变量,节省内存不说还能使得代码显得很简洁且容易理解。第二是能够避免使用过多的括号,生成复杂的函数套函数的形式。




扫码关注CDA公众号,即可获取最新版数据分析题库大全CDA免费精品课70+




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群