R Language

向量定义:x1 = c(1,2,3); x2 = c(1:100)

类型显示:mode(x1)

向量长度:length(x2)

向量元素显示:x1[c(1,2,3)]

多维向量:multi-dimensional vector:rbind(x1,x2); cbind(x1,x2)

 1 > x = c(1,2,3,4,5,6)

 2 > y = c(6,5,4,3,2,1)

 3 > z = rbind(x,y)

 4 > z

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

 6 x    1    2    3    4    5    6

 7 y    6    5    4    3    2    1

 8 > z = cbind(x,y)

 9 > z

10      x y

11 [1,] 1 6

12 [2,] 2 5

13 [3,] 3 4

14 [4,] 4 3

15 [5,] 5 2

16 [6,] 6 1

17 > 
View Code

 

一维向量导成二维矩阵:

> mtx=matrix(1:12, nrow=3, ncol=4)

> mtx

     [,1] [,2] [,3] [,4]

[1,]    1    4    7   10

[2,]    2    5    8   11

[3,]    3    6    9   12



> mtx=matrix(1:12, nrow=3, ncol=4, byrow=T)

> mtx

     [,1] [,2] [,3] [,4]

[1,]    1    2    3    4

[2,]    5    6    7    8

[3,]    9   10   11   12

一维向量变成二维矩阵:

> x = c(1:6)

> x

[1] 1 2 3 4 5 6



> is.vector(x)

[1] TRUE



> is.array(x)

[1] FALSE



> dim(x) <- c(2,3)

> x

     [,1] [,2] [,3]

[1,]    1    3    5

[2,]    2    4    6



> is.array(x)

[1] TRUE



> is.matrix(x)

[1] TRUE

矩阵转置:

> mtx

     [,1] [,2] [,3] [,4]

[1,]    1    2    3    4

[2,]    5    6    7    8

[3,]    9   10   11   12

> t(mtx)

     [,1] [,2] [,3]

[1,]    1    5    9

[2,]    2    6   10

[3,]    3    7   11

[4,]    4    8   12

矩阵相乘:

> a = mtx%*%t(mtx)
> a [,1] [,2] [,3] [1,] 30 70 110 [2,] 70 174 278 [3,] 110 278 446

对角线矩阵:

> diag(a)

[1]  30 174 446



> diag(diag(a))

     [,1] [,2] [,3]

[1,]   30    0    0

[2,]    0  174    0

[3,]    0    0  446



> diag(3)

     [,1] [,2] [,3]

[1,]    1    0    0

[2,]    0    1    0

[3,]    0    0    1

逆矩阵:

> a = matrix(rnorm(16),4,4)

> a

           [,1]       [,2]      [,3]       [,4]

[1,]  0.5116868 -0.5839355 0.9038526 -1.5063944

[2,] -1.0657446 -2.2067686 1.2187536  0.1999609

[3,]  0.4784326 -2.1762163 0.1937103  0.0255462

[4,] -2.5393649 -0.1884904 2.7594314 -0.6955184



> solve(a)

           [,1]      [,2]     [,3]      [,4]

[1,] -1.7427160 -5.204571 5.530340 2.4812951

[2,] -0.6103805 -1.743684 1.396904 0.8719984

[3,] -2.2412701 -6.107496 6.505573 3.3373229

[4,] -2.3639756 -4.756515 5.240446 2.5072471



> solve(a)%*%a

              [,1]          [,2]          [,3]          [,4]

[1,]  1.000000e+00  2.390341e-15 -1.167469e-15  1.311885e-16

[2,]  5.746272e-17  1.000000e+00 -2.270319e-16  1.114018e-16

[3,] -2.550044e-16 -1.047339e-16  1.000000e+00 -1.275022e-16

[4,]  5.872039e-16 -1.514197e-15 -7.502679e-17  1.000000e+00

 


Data Exploration

平均值:mean(x1)

求和:sum(x1)

最大值:max(x1)

最小值:min(x1)

方差:var(x1)

标准差:sd(x1)

累乘:prod(x1)

 


 公差向量

> seq(5, 10, by=2)

[1] 5 7 9



> seq(5, 50, length=13)

 [1]  5.00  8.75 12.50 16.25 20.00 23.75 27.50 31.25 35.00 38.75 42.50 46.25

[13] 50.00

 

字母向量

> letters

 [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r"

[19] "s" "t" "u" "v" "w" "x" "y" "z"



> letters[1:4]

[1] "a" "b" "c" "d"



> letters[1:30]

 [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r"

[19] "s" "t" "u" "v" "w" "x" "y" "z" NA  NA  NA  NA

 

下标函数:which()

> a=c(2,3,4,5,6,7,2,3,4,8,9,5)



> which.max(a)

[1] 11



> which(a==2)

[1] 1 7



> which(a>3)

[1]  3  4  5  6  9 10 11 12



> a[which(a>3)]

[1] 4 5 6 7 4 8 9 5

 

向量排序:rev(x), sort(x)

 


线性方程组:Linear Equations

x = c(x1, x2, x3, x4)

a = matrix(rnorm(16), nrow=4, ncol = 4)

b = c(1,2,3,4)

ax=b

solve(a, b);

 

特征值:

 

 

特征向量:

 

 


 

数据框

> x = data.frame(x1, x2)

> x = data.frame("数字" = x1, "字母" = x2)

> x

  数字 字母

1    1    a

2    2    b

3    3    c

4    4    d

5    5    e

 


 

文件的read & write 

> x=read.table("F:\\MyProject\\R\\test.txt", header=F)

> x

  V1 V2

1  a  1

2  b  2

3  c  3





> x=read.table("clipboard", header=F)

> x

  V1 V2 V3

1  1  1  2

2  2  2  3

3  3  3  4

4  4  4  5

5  5  5  6

6  6  6  7

7  7  7  8

 

write.table(x, file="PATH", col.names=F, row.names=F, sep=" ")

source(PATH)

 


 

循环语句 

> for (i in 1:60) {a[i] = i*2+1}

> a

 [1]   3   5   7   9  11  13  15  17  19  21  23  25  27  29  31  33  35  37

[19]  39  41  43  45  47  49  51  53  55  57  59  61  63  65  67  69  71  73

[37]  75  77  79  81  83  85  87  89  91  93  95  97  99 101 103 105 107 109

[55] 111 113 115 117 119 121

 

while(condition)

 


 

 

 

你可能感兴趣的:(language)