《R语言入门_第十章、十一章、十二章课件》由会员分享,可在线阅读,更多相关《R语言入门_第十章、十一章、十二章课件(22页珍藏版)》请在金锄头文库上搜索。
1、第十章 输入与输出,1、输出到显示器 scan(file=,what=double,sep=)函数:可以从文件中读取或者用键盘键入一个向量。可以看出,scan()的默认模式为double,默认间隔符为空格,使用时可根据具体情况修改,但遇到字符和数值混合的数据框,scan()就只能把所有内容统一为字符格式。 scan(1.txt) Read 8 items 1 1 21 2 22 3 23 4 24 scan(a.txt) #a中内容不是数值,出错 Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,
2、 : scan() expected a real, got a scan(a.txt,what=) #把模式改为字符型,即可输出 Read 3 items 1 a bc de,此外,scan()可以从键盘读取数据,但似乎作用不大 v inputsh 1 hello,cat(. , file = , sep = ) :既有输出功能,也有写入功能,但不支持列表和数据框,而矩阵则被转化为向量。 输出时要注意设置换行,cat没有自动换行功能。 当然,print(x)也有输出功能,并有计算表达式值的功能 ha ha 1 a bc print(ha) 1 a bc x print(x2) 1 1 4 9
3、,2、读取文本文件(读出来的都是数据框) read.table(file=,header=FALSE):txt格式 read.csv(file=,header=FALSE):csv格式,表格 excel也可以读取,不过相对麻烦 需要安装RODBC和XML包,然后用channel-odbcConnectExcel(file=)建立连接,最后用 sqlFetch(channel,SheetXX)读取 source(file=.R),读取脚本文件,R也可以读取远程计算机上的文件 uci uci ecc head(ecc) X11 X0 X71 X0.1 X0.260 X9 X4.600 X14 X1
4、 X1.1 name X1.2 X0.2 1 19 0 72 0 0.380 6 4.100 14 1.700 0.588 name 1 0 2 16 0 55 0 0.260 4 3.420 14 1 1 name 1 0 3 57 0 60 0 0.253 12.062 4.603 16 1.450 0.788 name 1 0 4 19 1 57 0 0.160 22 5.750 18 2.250 0.571 name 1 0 5 26 0 68 0 0.260 5 4.310 12 1 0.857 name 1 0 6 13 0 62 0 0.230 31 5.430 22.5 1.8
5、75 0.857 name 1 0,3、写文件 cat(x,file=,sep=),前面提过 write.table(x,file=),写入格式为txt write.csv(x,file=),写入格式为csv,第十一章 字符串操作,R语言的核心是数值向量和矩阵,但在文本挖掘中,字符串有大量应用,因此,R中有大量字符串操作工具。,1、函数介绍 grep(pattern,x) #在字符串向量x中搜索给定的字符串pattern,并返回索引。 grep(Pole,c(Equa,North Pole,South Pole) 1 2 3 grep(the,scan(aa.txt,what=) #scan(
6、)读取的也是向量,不过当内容不是数值型时,要注意转化为字符串 Read 7 items 1 1 4 5,nchar(x) #返回字符串长度,可一次返回多个但要注意用c,即连接 a nchar(a) 1 10 a nchar(a) 1 9 b nchar(b) 1 2 3 nchar(a,b) Error in nchar(a, b) : invalid type argument nchar(c(a,b) 1 9 2 3,paste(x,y,sep=) #拼接多个字符串,并返回一个长字符串 paste(a,b,sep=) #b中有两个元素,直接拼接a、b会把a和b的两个元素分别拼接 1 Sou
7、tnPoleab SoutnPolecde paste(a,xy,z,sep=) 1 SoutnPolexyz paste(a,xy,z,sep= ) 1 SoutnPole xy z paste(a,xy,z,sep=,) 1 SoutnPole,xy,z,sprintf(%.,.):按一定格式组合若干组件为字符串 sprintf(%f, pi)#默认情况的双精度 sprintf(%x.3f, pi)#保留三位小数,最多占x位,x为正表示空格在前 sprintf(%d,5)#默认情况的整型 sprintf(%1.2f, pi) 1 3.14 sprintf(%.2f, pi) 1 3.14
8、sprintf(%10.1f, pi) 1 3.1 sprintf(%1.5f, pi) 1 3.14159 sprintf(%d,5) 1 5 i-8 s-sprintf(the square of %d is %d,i,i2)s 1 the square of 8 is 64,substr(x,start,stop):返回字符串x中注定位置范围上的子字符串 substring(x,start,stop):类似substr,但更强大 substr(equator,3,5) 1 uat substring(equator,3,5) 1 uat substr(equator,3,5:7) 1 u
9、at substring(equator,3,5:7) 1 uat uato uator,strsplit(x,split=) #根据x中的字符串split拆分x strsplit(2-27-2014,-) 1 1 2 27 2014 regexpr(pattern,x)#在字符串x中检索pattern,返回与pattern匹配的第一个子字符串的起始字符位置 regexpr(uate,equater) #匹配起始位置 1 3 attr(,match.length) #匹配长度,不匹配则返回-1 1 4 attr(,useBytes) 1 TRUE,gregexpr(pattern,x),功能类
10、似regexpr,但更强大,能返回所有与pattenr匹配的字符串的起始位置 gregexpr(iss,mississp) 1 1 2 5 attr(,match.length) 1 3 3 attr(,useBytes) 1 TRUE regexpr(iss,mississp) 1 2 attr(,match.length) 1 3 attr(,useBytes) 1 TRUE,2、正则表达式 ab #含有字母a或b的字符串 . #英文句点(.) ,表示任意一个字符,当想只让其代表句点时,需用“”,但由于“”本身也有特殊属性,所以需要多加一个“”。 grep(au,c(equa,North
11、Pole,South Pole) 1 1 3 grep(0.e,c(equa,North Pole,South Pole) integer(0) grep(o.e,c(equa,North Pole,South Pole) 1 2 3 grep(.,c(equa,North.Pole,South.Pole) 1 1 2 3 grep(.,c(equa,North.Pole,South.Pole) 1 2 3,第十二章 绘图,plot(x,y,type=l,pch=19,main=xxx,xlab=yyy,xlim=c(a,b)函数 plot(c(1,2,3),c(1,2,4) dev.new(
12、)#打开新的绘图窗口,windows()有相同功能 plot(c(-3,3),c(-1,5),type=n,xlab=x,ylab=y) #type=n表示不添加元素 x-c(1,2,3) y-c(1,3,8) plot(x,y) lmot-lm(yx) #求y对x的线性模型 abline(lmot) #添加线性模型的线 lines(y) #把点连起来,point(x,y,pch=+)函数 #在指定区域添加点 e2-round(rnorm(100,mean=70,sd=40) e1-round(rnorm(100,mean=75,sd=42) plot(c(0,100),c(0,100),ty
13、pe=n,xlab=x,ylab=y) points(e2,e3,pch=+),legned() #添加图例 x - seq(-pi, pi, len = 65) plot(x, sin(x), type = l, ylim = c(-1.2, 1.8), col = 3, lty = 2) points(x, cos(x), pch = 3, col = 4) lines(x, tan(x), type = b, lty = 1, pch = 4, col = 6) title(legend(., lty = c(2, -1, 1), pch = c(NA, 3, 4), merge = T
14、RUE), cex.main = 1.1)#merge=T合并点线,cex.main设置台头类型,lty设置线宽 legend(-1, 1.9, c(sin, cos, tan), col = c(3, 4, 6), text.col = green4, lty = c(2, -1, 4), pch = c(NA, 3, 4), merge = TRUE, bg = gray90)#bg设置背景色,text(xlab,ylab,)函数 #在指定位置添加文字 locator(n)#鼠标定位,告诉R,我将在图中点击n次,而R会告诉我我点击位置的坐标. locator(n)配合legend()和text()可以为添加图例和文字提供很大便利 polygom(c(),c(),col=)#在图中添加多边形,第一个参数指定各个定点横坐标,第二个指定纵坐标,方向是左下逆时针旋转。 pdf(xxx.pdf)#保存图形到xxx.pdf,三维图形 library(lattice) a-1:10 b-1:15 eg-expand.grid(x=a,y=b) #生成x和y任意组合的数据框 eg$z-eg$x2+eg$x*eg$y wireframe(zx+y,eg) 绘制三维图形的函数不只这个。 除了基本的绘图工具plot外,还有很多油特色功能的绘图函数。,