【R读书笔记】R语言读书心得3-数据的导入导出
1.6数据的导如何导出
在R语言进行数据分析和数据挖掘的时候,我们首先要做的,就是要寻找相关的数据,然后找到相关的算法和模型对此进行分析和挖掘,并把它转化为最终结果。而这里,我将要介绍几种方法来实现数据的导入和导出。
1.6.1从键盘上输入数据
导入数据,我们最容易想到的就是直接在R内用键盘输入数据,相关操作如下:
mydataf<-data.frame(age=numeric(0),gender=character(0),
height=numeric(0),weight=numeric(0))
mydataf<-edit(mydataf)
这里,使用edit()函数后,我们马上进入这个界面进行,在里面,我们既可以对这个空数据集输入相关数据,同时也可以对已经存在的数据集进行修 改。输入完毕以后,我们直接点【文件】->【关闭】,这样,我们的数据框编辑完毕。接下来,我们再看一下mydataf这个数据集:
可以看到,我们之前输入的数据已经赋值到mydataf了。
1.6.2利用read.table()函数导入数据
在R中,我们也常常需要从已有的数据文件导入数据。read.table()函数经常用于读取txt.格式文件里的数据。不过,在操作之前,我还是先调用一下帮助文档给大家看看:
read.table()
这里,你可以在Excel文件或记事本文件里创建一个数据框,导入的时候,也是按照数据框的格式导入的。
接下来,我就给大家演示一下如何用read.table()导入数据。
tf<-tempfile()
test1<-c(1:10,"11,12","13,14,15")
writeLines(test1,tf)
read.table(tf,fill=TRUE)
首先,我使用tempfile()创建一个新的文件,然后我用test1把要输入的数据存进来;接下来,我用writeLines()函数把 test1里面的数据写到tf文件当中,最后,再用read.table()把这个文件调用起来。这样,我们就成功的用read.table() 把.txt文件里的数据导入进来了。
当然,我们也可以从已有的记事本里导入相关的数据,具体操作和实例如下:
read.table("E:\mmm.txt",header=FALSE)
显然,我们从记事本导入的数据集被转换成了数据框的格式。当然,有关read.table()的其它操作大家就自行看一下帮助文档就好了。
1.6.3从Excel中导入数据
我 相信Excel对于大家来说都已经再熟悉不过了。对曾记得所有非计算机专业的学生们都得学计算机基础这门课程,而且据说挂科了下场是挺惨的。在这门课当 中,我相信Excel老师肯定会重点讲解。其实,无论是计算机专业的学生,还是非计算机专业的学生,都需要学好Excel,毕竟,Excel在我们的实际 生活中运用实在太广泛了,从普通的办公室的职员、高层管理,再或者是像小编这种学习数据挖掘的学生或者是数据科学行业的从业者们,都能看到Excel存在 的身影;而且,如果你有打算学习SPSS的话,把Excel的基础打扎实则是非常的重要,毕竟,SPSS很多功能和Excel相似,只不过处理数据量更 大、更能更强大、在数据科学领域的用途更广而已。
其实,在R语言当中,从Excel文件导入数据和从网页中导入数据是最常用的两种导入数据的方式(后面,你很有可能会接触到数据库、Spark、Hadoop,它们也的用途也很广泛)。所以,这部分的内容,我就向大家介绍一下R语言是怎样从Excel导入数据的。
首 先,我们之前已经调用了read.table()的帮助文档,里面详细介绍了read.table()的各种操作和解释。不过,只要你稍微留心观察一下那 个帮助文档,你很快就能发现它还介绍了各种read.csv()的操作;也就是说,它也详细介绍了如何从Excel中导入数据。
现在,我们使用read.csv()函数来实现从Excel中导入数据(其中,以pop1Excel文件为例):
read.csv("E:\pop1.csv")
这是整个数据集的其中一部分,要想了解pop1数据集的详细信息,我们可以调用str()函数和summary()函数来看看:
str(pop1)
summary(pop1)
这里,我们看到pop1数据集有3个变量,分别是id、sex和height,其中,id和height都属于整型,sex则属于因子型。再看看 summary()函数汇总出来的结果,我们看到整个数据集一共有100000个变量,其中,FEMALE的数量为48888,而MALE的数量则为 51112。再看看height,我们看到它的最值分别为最小值117和最大值217,平均身高和中位数分别为170,它的两个四分位数分别为162和 178。就这样,我们就成功的把一个Excel数据集导入到R中。
当然,把Excel的数据导入到R的方法很多种,而接下来的这种,则是直接点击相关的按钮进行操作。我们看到Rstudio的界面,我们看到这个按钮,点击一下它,弹出了如下的界面:
这里,我们既可以导入本地文件数据,也可以导入网页数据,现在,我们点击第一个,然后再根据你的需求点击相应的文件导入数据,下面是我自己列举的一个实例:
现在,我把第一行的数据打开,弹出如下界面:
最后点击import按钮即可。完了以后,数据导入成功,而下面的图则是我导入magnets数据文件的结果:
当然,后面还有很多很多列,我这里就不展示出来了。
当然,还有第三种方法,就是调用xlsx包来调入xlsx类型的Excel文件的数据。这里,由于之前调试很多次都无法把现有xlsx类型文件导入到R中,所以,这次所列举的实例,是自己在R里创建一个xlsx类型文件导入到R中的,以此讲解xlsx包的使用。
下面,我们先看看我自己所创建的实例:
life<-data.frame(
X1=c(2.5, 173, 119, 10, 502, 4, 14.4, 2, 40, 6.6,
21.4, 2.8, 2.5, 6, 3.5, 62.2, 10.8, 21.6, 2, 3.4,
5.1, 2.4, 1.7, 1.1, 12.8, 1.2, 3.5, 39.7, 62.4, 2.4,
34.7, 28.4, 0.9, 30.6, 5.8, 6.1, 2.7, 4.7, 128, 35,
2, 8.5, 2, 2, 4.3, 244.8, 4, 5.1, 32, 1.4),
X2=rep(c(0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2,
0, 2, 0, 2, 0, 2, 0),
c(1, 4, 2, 2, 1, 1, 8, 1, 5, 1, 5, 1, 1, 1, 2, 1,
1, 1, 3, 1, 2, 1, 4)),
X3=rep(c(0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1),
c(6, 1, 3, 1, 3, 1, 1, 5, 1, 3, 7, 1, 1, 3, 1, 1, 2, 9)),
Y=rep(c(0, 1, 0, 1), c(15, 10, 15, 10))
)
f<-paste(tempdir(),"/life.xlsx",sep="")
write.xlsx(life,file=f)
read.xlsx(f,1)
于是,我们得到以下的结果:
这个数据集有50行的数据,这里,我只列举前面的10行。从上图,我们已经成功的把xlsx类型文件里的数据导入到R了,具体情况我们可以str()和summary()一下:
a<-read.xlsx(f,1)
str(a)
summary(a)
具体的情况你们就自行理解好了。当然,如果对上述函数有什么疑问,你们都可以调用帮助文档来获得更多相关信息。
1.6.4从网页中抓取相关数据
网页抓取数据也是R中非常常用的,尤其是我们要做股票分析和预测的时候也是非常需要网页数据抓取相关公司的股票的走势情况。不过,R语言实战这本书介绍这部分的内容也相对比较少,所以,我直接直入正题。
网页数据抓取当中,我们可以使用RCurl包的getURL()函数即可。下面,我就直接列举一个实例:
library(“RCurl”)
x<-getURL(“https://github.com/johnmyleswhite/ML_for_Hackers/blob/master/ 01-Introduction/data/census.csv”)
y <- read.csv(text = x)
y
结果,你们就根据这段代码运行就好了。
当然,还有很多种方法,分别从不同的软件、数据库等等导入数据,这些,我就不再讲解,你们自行学习就好了。
1.7实用函数讲解
最后,我想再向大家介绍几个在R当中比较常用的函数。之前,我已经给大家介绍了两个非常实用的函数,str()和summary(),它们都能让我们知道整个数据集的整体信息。
这里,我就挑取R语言实战里比较典型的一些函数进行讲解,剩下的自己自行自学。
首先,我们看一下length()函数。length()函数就是求某个向量的长度,在某些数学模型中就会用到。这里,我直接列举实例好了。
a<-c(1:10)
length(a)
由于这个向量由10个整数构成,所以,它是一个包含10个整型数元素的向量,故向量的长度为10。
继续以a向量为实例来介绍class()函数。class()函数就是查看某个R对象是哪种属性的使用函数,接下来,我列举几个相关实例(其中包含向量a)。
a<-c(1:10)
b<-c(1.00,2.00,3.00)
c<-("This is a moment")
d<-c("M","F")
e<-factor(c,d)
f<-c(TRUE,FALSE)
class(a)
class(b)
class(c)
class(d)
class(e)
class(f)
还有,我们也可以用names()函数来提取出R对象的变量名。这次,我一之前创建的life数据框为实例,看一下names()函数的运行。
life<-data.frame(
X1=c(2.5, 173, 119, 10, 502, 4, 14.4, 2, 40, 6.6,
21.4, 2.8, 2.5, 6, 3.5, 62.2, 10.8, 21.6, 2, 3.4,
5.1, 2.4, 1.7, 1.1, 12.8, 1.2, 3.5, 39.7, 62.4, 2.4,
34.7, 28.4, 0.9, 30.6, 5.8, 6.1, 2.7, 4.7, 128, 35,
2, 8.5, 2, 2, 4.3, 244.8, 4, 5.1, 32, 1.4),
X2=rep(c(0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2,
0, 2, 0, 2, 0, 2, 0),
c(1, 4, 2, 2, 1, 1, 8, 1, 5, 1, 5, 1, 1, 1, 2, 1,
1, 1, 3, 1, 2, 1, 4)),
X3=rep(c(0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1),
c(6, 1, 3, 1, 3, 1, 1, 5, 1, 3, 7, 1, 1, 3, 1, 1, 2, 9)),
Y=rep(c(0, 1, 0, 1), c(15, 10, 15, 10))
)
names(life)
这里,我们看到life函数有4个变量,其名字分别为X1、X2、X3和Y。当然,还有很多很实用的函数,这里,我在列举R语言实战里所列举出的使用函数,没讲的,其实也很容易学,反正,加油吧。
1.8总结
作 为整个读书笔记的开头,第一部分的目标就是向大家介绍R语言里最基本的操作和相关的函数;同时,我们也学习了基本的数据结构,即向量、数组、矩阵、数据 框、因子和列表。往后,我们又讲解了如何从外部导入相关数据。其实,这些基本中的基本的操作需要大家在空余时间好好琢磨一下,而且,只要你稍微有点心来看 R语言实战前两章的内容,你能快速的掌握里面相关的内容。
写到这,R语言实战读书笔记的第一部分内容,即开篇已经全部讲解完了;下面的一个部分, 按照之前在数据人网发表的R语言实战读书笔记导论里的计划那样,我将要讲解如何管理我们的数据,因为,数据的管理也是非常重要的,事关我们整个数据分析项 目的成败。所以,这部分的内容,也需要用心来琢磨。当然,你也是只要稍微花点心思就能学好的。
严禁修改,可以转载,请务必注明出自数据人网和原文链接。
今日数据人网精选推荐:
《R语言多项式回归》
点击【阅读原文】,即刻阅读精选。
请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!