R 语言是为数学研究工作者设计的一种数学编程语言,主要用于统计分析、绘图、数据挖掘。 机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
这篇是介绍一些错误和对文件的读取写入的方法(操作文件是数据挖掘的基础)
常见错误
定义向量不要忘记加c,定义多个数据时记得要使用c()
使用函数要记得加括号,尽量多使用自动补齐功能
两个等号才是比较是否相等
获取数据
R获取数据一共有三种途径:
利用键盘来输入数据
通过读取存储在外部文件上的数据
通过访问数据库系统来获取数据
读入文件(一)
R读取文件
纯文本文件(.csv/.txt):
通常使用逗号,也可以使用空白分割
1.Read.table()函数可以读取一个纯文本文件,read.table(file=要读入的文件的名称;
2.sep=指定文件使用的分隔符,默认是空白分割;
3.header=代表在读取数据之后是否将数据的第一行作为变量的名称,而不是当成具体的值来处理,如果是,header=T,不是,header=F;
4.skip=表示读取参数时,跳过部分内容,比如说可以跳过一些介绍性文字;nrows=用于读取文件的行数;
5.na.strings=用于处理缺失值的信息)
- x <- read.table(file = "input.txt")#需要在工作目录下才可以直接输入名称
如果不在工作目录下,可以利用setwd()函数来更改R的工作目录,或者使用文件的全路径:
可以使用head()和tail()函数读取文件的前几行或者是后几行数据,可以通过函数中选项参数n的数值来确定显示的行数
使用sep可以指定对数据进行分割,使数据格式变得整洁:
如果提前知道文件格式,也可以直接用read.csv()进行直接读取:
例如需要读取文件前100行的数据:
在此基础上使用skip和nrows两个参数相结合,就可以读取任意部分的数据,比如读取上述文件的第10-50行数据:
read.table("input 1.txt",header = T,skip=10,nrows = 50)
R在读取数据时,字符串数据会被默认读取成因子型数据。
读入文件(二)
如果一个纯文本文件并不在本机上,R可以支持读取网络文件,可以通过一些协议进行读取,只要将read.table()函数的选项参数file=文件的网络链接即可。R会将文件下载到本地。
如何读取非文本文件?
我们可以使用XML包进行读取,里面包含一个readHTMLTable()函数,可以用于读取网页中的数据。
R中的foreign包可以帮助导入其他软件的数据
或者可以直接导入剪切板的内容,直接将read.table()函数选项参数改为clipboard即可:
R可以直接读取压缩文件,并不需要解压缩:
如何写入文件
使用write.table()函数可以将数据写入文件,函数中,write.table(x=写入的数据,file=数据的存储路径及格式”)
如:
x=read.table("input.txt")
write.tale(x,file="H:/Rdata/newfile.txt")
也可以使用sep参数确定分隔符,这样就等同于做了一次数据转换,将文本数据转变成了表格数据
write.table(x,file = "H:/RData/newfile.csv",sep=",")
每一次加载数据,R会自动给每一行数据添加行号,为避免多次打开数据导致行号重复,可使用row.names参数
write.table(x,file = "H:/RData/newfile.csv",sep=",",row.names = F)
R会覆盖同名文件,使用append参数可以添加同名参数
R可以直接写入压缩文件:
write.table(mtcars,gzfile("newfile.txt.gz"))
读写excel文件
可以使用两种方式:
将excel文件另存为csv文件,再使用read.csv()打开
如:
read.csv("H:/RData/mtcars.csv",header = T)
或者将数据复制到剪贴板,使用readclipboard()函数将数据导入R中,在R中打开:
readClipboard()
read.table("clipboard",sep = '\t',header = T)
在R中也提供了很多包用于直接读写excel数据
比如:xlconnect包(这个包依赖于JAVA,需要有java的环境),
如果该R包无法安装,可以使用openxlsx包进行读取,如下:
library(openxlsx)
read.xlsx("H:/RData/data.xlsx",sheet = 1)
还可以使用openxlsx包的函数创建并写入新的excel文件,代码如下:
wb <- createWorkbook()
addWorksheet(wb,sheetName = 1)
x <- mtcars
writeData(wb,sheet = 1,x,startCol = 1,startRow = 1)
write.xlsx(x,"cars.xlsx")
这样就创建了具有mtcars数据的excel文件。