专栏首页数据小魔方R语言数据重塑及导出操作

R语言数据重塑及导出操作

今天跟大家简单介绍下几个常用的R数据操纵技巧——导入(xlsx)、导出及长宽转换!

数据导入(xlsx)

之前写过一篇关于R导入不同类型数据的方式,但是其中只涉及到.csv、.txt以及直接从剪切板复制。

之所以当时没有介绍xlsx是因为,excel数据文件属于富文本类型,结构相对复杂,需要解除特殊包的支持以及java环境,当时电脑上还没有配置合适的java环境。

后来倒腾一个上午,才算弄完(主要是因为R语言系统版本与Java环境版本需严格一致,否则R语言无法自动探测到Java路径,R语言中的Rjava包便无法加载,而导入xlsx数据需要xlsx包的支持,xlsx包则需要Rjava包的支持)。

所以在导入数据之前,最好先配置好你系统内的java环境,确保其与你的R语言版本一致。

导入xlsx数据所需用到的包:

library("rJava")

library("xlsx")

library("xlsxjars")

以下是导入代码:

data<-read.xlsx("F:\\数据可视化\\数据分析\\R\\R语言学习笔记\\数据整理\\myfile.xlsx",sheetName="file",header=T,encoding='UTF-8')

以上语法中,括号内第一个参数是路径及文件名,sheetName="file"是指定要导入的excel工作薄内的工作表对象,如果你对工作表有命名,一定要指定名称,如果没有,指定为默认的工作表名称(Sheet1、2、3),第三个参数指定导入数据文件的编码方式(UTF-8)。

可以通过head(data)查看数据集的前6条记录。

数据重塑(宽转长):

本例就按照导入的成绩宽数据作为演示案例:

我们想要将以上导入的数据转成长数据,也就是一维表(姓名、科目、分数)

加载数据重塑包:

library("reshape2")

mydata <- melt(data, id.vars = "姓名",variable.name = "科目", value.name = "成绩")

长数据立马就可以呈现出来。

可是以上情况太过理想,通常我们要面对的宽数据会很复杂:

倘若我们面临的输入如上所示,想要得到的结果是,姓名、姓名是两列单独的字段,不同科目合并成单独的一个字段。这种结果就稍显复杂。

不过reshape2包仍然可以轻松应对这种情况:

mydata2 <- melt(data, id.vars = c("姓名","性别"),variable.name = "科目", value.name = "成绩")

只需在指定主字段时,给id.vars = c("姓名","性别")定义多组主字段就可以了,多组字段要使用逗号区隔。

数据读出:

好了,以上数据转换完成,现在我们要将数据导出了,以下暂且介绍两种类型(xlsx暂不介绍,还是同样的原因,富文本需要设定的参数太多,需要很多工具支持,目前还没太搞明白)

导出CSV文件:

write.table (mydata2, file ="F:\\数据可视化\\数据分析\\R\\R语言学习笔记\\数据整理\\newdata.csv", sep =",", row.names =FALSE)

运行以上代码,你的对应路径中瞬间就多出一个名为newdata.csv的数据文件:

导出TXT文件:

write.table(mydata2,file="F:\\数据可视化\\数据分析\\R\\R语言学习笔记\\数据整理\\newdata.txt" , sep =" ", row.names =FALSE,col.names =TRUE, quote =FALSE)

sep指定变量间分隔符,默认为空格,row.names指定是否输出行号,col.names指定是否输出列名,quote指定是否用引号将变量包括。

跑完代码之后,你对应的文件夹目录下就多对出一个名为newdata的TXT格式数据文件,你可以通过导入并查看数据导入格式是否正确:

data3<-read.table("F:\\数据可视化\\数据分析\\R\\R语言学习笔记\\数据整理\\newdata.txt",header=T)

以上就是本次分享的全部内容,R语言的的很多包内存放了许多高质量的数据集,可以用来做数据分析与处理以及可视化的案例数据,将这些数据导出为TXT或者CSV格式的数据集存放在你的电脑上,以备不时之需。

本文分享自微信公众号 - 数据小魔方(datamofang),作者:小魔方

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-10-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Excel常用数据导入方法

    今天给大家讲解Excel数据源的导入 ▽ excel支持的数据源类型有很多 今天只讲解常用的三种类型 Access文件、网页数据、文本数据 Access数据源导...

    数据小磨坊
  • R语言可视化——关于ggplot所支持的数据地图素材类型

    做了这么多数据地图,是时候该总结一些心得和理念了,今天这篇讨论ggplot2所支持的数据地图素材格式。 library("plyr") library("dp...

    数据小磨坊
  • 绩效管理工具(二)——温度计风格图表!

    今天跟大家分享另一种用作绩效管理的图表工具——温度计风格图表! ▽ 这种图表看起来简洁、直观。数据表达清晰、无冗余。今天主要介绍两种做法,都不是特别复杂,但是需...

    数据小磨坊
  • 【每日一课】R语言入门教程-1.4R帮助文档

    课程名称:R语言入门教程 第一章:认识R 1.4R帮助文档 【课程目的】 在大数据时代里,数据分析愈发重要,R语言适合做数据分析,R语言已成为许多数据分析...

    小莹莹
  • 【每日一课】R语言入门教程-1.3 R扩展包

    课程名称:R语言入门教程 第一章:认识R 1.3 R扩展包 【课程目的】 在大数据时代里,数据分析愈发重要,R语言适合做数据分析,R语言已成为许多数据分析...

    小莹莹
  • 汽车+大数据=变形金刚?解读汽车大数据价值

    车联网是大数据应用的最佳载体 车联网是基于“人-车-路-环境”四大要素的综合系统,每一个要素自身都存在海量可挖掘数据,而每一个要素同时又是大数据应用和变现的对...

    灯塔大数据
  • 如何使用R语言解决可恶的脏数据

    在数据分析过程中最头疼的应该是如何应付脏数据,脏数据的存在将会对后期的建模、挖掘等工作造成严重的错误,所以必须谨慎的处理那些脏数据。 脏数据的存在形式主要有如下...

    小莹莹
  • 大数据的核心是什么?云技术和BI?

    关于大数据和云计算的关系人们通常会有误解。而且也会把它们混起来说,分别做一句话直白解释就是:云计算就是硬件资源的虚拟化;大数据就是海量数据的高效处理。如果做一个...

    加米谷大数据
  • Spark的容错机制

    天策
  • 最先进的Sparse直接求解器

    作者:Matthias Bollhöfer, Olaf Schenk, Radim Janalík, Steve Hamm, Kiran Gullapalli

    罗大琦

扫码关注云+社区

领取腾讯云代金券