初识R语言 #
Date: 2015/7/28
一直听说R语言做分析是非常厉害的,但是因为是一门新语言,本人又不是研究统计分析这一块儿的,所以没有兴起学习的念头。机缘巧合之下,得到了一本用R语言做统计的书,又有些问题可能会用到统计的方法,所以对R语言做了一些简单的尝试。可以说,在初接触R语言的过程中,觉得R语言的易用性离Matlab还有一定的差距,至于统计方面的使用如何,还有待后续的尝试。more
本文做了如下事情:从octave导出的text格式中读出图片的像素数据,并显示为图片。文件读取
读Matlab文件需要装一个R.matlab的库,读Octave文件需要读一个foreign的库。不过装了后发现都用不上。至少我是没能从Octave save出来的文档中读到数据。最终使用了手动输入的方式。数组操作
R语言中的数组有两类:array与matrix。其中matrix被强制的定义为二维数组,高维的只能定义为array。
通常情况下,我们将一组数据通过连接函数c()连在一起。比如:
> x <- c(1,3,2,5)> x[1] 1,3,2,5
x <- c(1,3,2,5)
x
[1] 1,3,2,5
连接出来的这一串可不是矩阵,仅仅是向量,要变为矩阵,可以如下定义:
m = matrix(x, 2, 2)
m = matrix(x, 2, 2)
或调用一些矩阵函数可以转化为矩阵。
- 矩阵的转置: 矩阵的转置:
使用函数t()进行转置。对向量进行操作后,将变为行矩阵,需要调用t(t(x))才能将x变为列矩阵。
- 矩阵的拼接> rbind(x,x) [,1] [,2] [,3] [,4] x 1 3 2 5 x 1 3 2 5
cbind(x,x) x x [1,] 1 1 [2,] 3 3 [3,] 2 2 [4,] 5 5 矩阵的拼接
> rbind(x,x)
[,1] [,2] [,3] [,4]
x 1 3 2 5
x 1 3 2 5
> cbind(x,x)
x x
[1,] 1 1
[2,] 3 3
[3,] 2 2
[4,] 5 5
rbind(x,x) [,1] [,2] [,3] [,4] x 1 3 2 5 x 1 3 2 5 cbind(x,x) x x [1,] 1 1 [2,] 3 3 [3,] 2 2 [4,] 5 5图的显示
直接利用像素色彩出图,可以使用下面这类方法,一看就清楚了。其中利用image函数画图,前两个参数为大小,第三个参数为一个矩阵,其实就是图的像素色彩矩阵了。
tr = matrix(r,32,32);tg = matrix(g,32,32);tb = matrix(b,32,32);par(mar=rep(0, 4));Rcolor1<-rgb(1:255,0,0,alpha=100,maxColorValue=255);Rcolor2<-rgb(0,1:255,0,alpha=80,maxColorValue=255);Rcolor3<-rgb(0,0,1:255,alpha=30,maxColorValue=255);image(1:32,1:32,tr,col=Rcolor1,add=F,axes=F,ann=F);image(1:32,1:32,tg,col=Rcolor2,add=T,axes=F,ann=F);image(1:32,1:32,tb,col=Rcolor3,add=T,axes=F,ann=F);
tr = matrix(r,32,32);
tg = matrix(g,32,32);
tb = matrix(b,32,32);
par(mar=rep(0, 4));
Rcolor1<-rgb(1:255,0,0,alpha=100,maxColorValue=255);
Rcolor2<-rgb(0,1:255,0,alpha=80,maxColorValue=255);
Rcolor3<-rgb(0,0,1:255,alpha=30,maxColorValue=255);
image(1:32,1:32,tr,col=Rcolor1,add=F,axes=F,ann=F);
image(1:32,1:32,tg,col=Rcolor2,add=T,axes=F,ann=F);
image(1:32,1:32,tb,col=Rcolor3,add=T,axes=F,ann=F);
Categories: R语言