一、绪论:

R语言是什么?

R是一种适用于统计分析计算和图像处理的语言.受S语言和Scheme语言影响发展而来.早期R是基于S语言的一个GNU项目,所以也可以当作S语言的一种实现,通常用S语言编写的代码都可以不作任何修改的在R环境下运行。R的语法是来自Scheme.

R语言如何而来的?

R本来是由来自新西兰奥克兰大学的Ross Ihaka和Robert Gentleman

开发.[因两人名字都是以R 开头 所以也因此形象称为R]

二、基础知识:

1、数据结构(矩阵,数据框,向量,列表)

#定义一个向量并且使用class查看他的属性:

> d <-class(d)
[1] "numeric"

我们看到是数字型的。
#再定义一个向量:

> c<- class(c)
[1] "character"

由于4外面打了引号,所以向量属性是字符型。
我们可以把他转成数值型:

> class(c)<-"numeric"
> c
[1] 1 2 3 4

就变成数值了
试试下面的四则混合运算(疑问:2者长度不一样,怎么计算出来的?可以尝试观察下):
d+c
d-c
d*c
d/c
#定义一个矩阵

>M <-matrix(1:9,nrow=3,ncol=3)
>M
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9

#按行填充

>N <-matrix(1:9,nrow=3,ncol=3,byrow=T)
>N
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
[3,] 7 8 9

仔细观察下上面两者写法和结果的差别。
动手试试看下面的矩阵乘法:
M*N
M%*%N
#定义一个list

> D <-{}
> D[[1]]<-c(1,2,3)
> D[[2]]<-c(2,3,4)
> D[[3]]<-matrix(1:6,nrow=2)
> D
[[1]]
[1] 1 2 3

[[2]]
[1] 2 3 4

[[3]]
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6

#定义序列

> G1 <-seq(from=1,to=9,by=1 )
> G2 G3<-rep(c(1,2),2)
> G1
[1] 1 2 3 4 5 6 7 8 9
> G2
[1] 1 2 3 4 5 6 7 8 9
> G3
[1] 1 2 1 2

#读入数据
read.table("路径",header=FALSE,stringsAsFactors=TRUE,fill=TRUE)

2.Apply函数簇和长宽报表转换

#定义矩阵

> N<-matrix(1:9,nrow=3,ncol=3,byrow=T)
> N
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
[3,] 7 8 9

动手试试看:
#按行求和
apply(N,1,sum)
#按列求均值
apply(N,2,mean)
#按列求标准差
apply(N,2,sd)
#按列排序
apply(N,2,sort)
#导入R里面的数据集iris
data(iris)
iris
#用apply函数簇,求每种花的花瓣总长度
tapply(iris$Sepal.Length,iris$Species,sum)
#求每种花瓣,花鄂的标准差
sapply(1:(ncol(iris)-1),function(x) sd(iris[,x]))
apply(iris,2,sd)

#长宽表转换(需要导入reshape和reshape2包)
#### source("http://bioconductor.org/biocLite.R")
#### biocLite()
####
library(reshape)
library(reshape2)
data_reshape 借款周期=c(7,10,14,8,10,12))
data2 data3 data3 colnames(data3) <-c("客户ID","借款金额","借款时间","借款周期")
结果如下: