将z数组作为10*10矩阵看待
> z > attr(z,"dim") > z
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 1 11 21 31 41 51 61 71 81 91
[2,] 2 12 22 32 42 52 62 72 82 92
[3,] 3 13 23 33 43 53 63 73 83 93
[4,] 4 14 24 34 44 54 64 74 84 94
[5,] 5 15 25 35 45 55 65 75 85 95
[6,] 6 16 26 36 46 56 66 76 86 96
[7,] 7 17 27 37 47 57 67 77 87 97
[8,] 8 18 28 38 48 58 68 78 88 98
[9,] 9 19 29 39 49 59 69 79 89 99
[10,] 10 20 30 40 50 60 70 80 90 100
> b > b
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14
[15] 15 16 17 18 19 20 21 22 23 24 25 26 27 28
[29] 29 30 31 32 33 34 35 36 37 38 39 40 41 42
[43] 43 44 45 46 47 48 49 50 51 52 53 54 55 56
[57] 57 58 59 60 61 62 63 64 65 66 67 68 69 70
[71] 71 72 73 74 75 76 77 78 79 80 81 82 83 84
[85] 85 86 87 88 89 90 91 92 93 94 95 96 97 98
[99] 99 100
z有1500个元素组成的向量,下面语句使他具有dim属性,并且被当作3*5*100的数组进行处理。
dim(z) 如果在任何下标给出空值,意味着选择这个下标的所有值。
除了赋予一个向量dim属性外,还可以用array来从向量构建数组。
> b > b
[,1] [,2] [,3] [,4] [,5]
[1,] 1 5 9 13 17
[2,] 2 6 10 14 18
[3,] 3 7 11 15 19
[4,] 4 8 12 16 20
数据外积操作。维数向量和有原数组连接而成,属性和操作属性有关。数据向量有a的所有向量和b的所有向量的所有可能乘机产生
> a
[1] 1 2 3 4 5
> b > b
[1] 10 11 12 13 14 15
> ab > ab
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 10 11 12 13 14 15
[2,] 20 22 24 26 28 30
[3,] 30 33 36 39 42 45
[4,] 40 44 48 52 56 60
[5,] 50 55 60 65 70 75
cd
数组的广义转置 :我理解就是维度变换,不过对于多为怎么换还是不好理解。
> cd
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 10 11 12 13 14 15
[2,] 20 22 24 26 28 30
[3,] 30 33 36 39 42 45
[4,] 40 44 48 52 56 60
[5,] 50 55 60 65 70 75
如果A和B同样大小的方阵,那么结果即使对应元素的乘机。
> ab *cd
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 100 121 144 169 196 225
[2,] 400 484 576 676 784 900
[3,] 900 1089 1296 1521 1764 2025
[4,] 1600 1936 2304 2704 3136 3600
[5,] 2500 3025 3600 4225 4900 5625
> e > e
[,1] [,2] [,3] [,4] [,5]
[1,] 10 20 30 40 50
[2,] 11 22 33 44 55
[3,] 12 24 36 48 60
[4,] 13 26 39 52 65
[5,] 14 28 42 56 70
[6,] 15 30 45 60 75
> f > f
[,1] [,2] [,3] [,4] [,5]
[1,] 10 20 30 40 50
[2,] 11 22 33 44 55
[3,] 12 24 36 48 60
[4,] 13 26 39 52 65
[5,] 14 28 42 56 70
[6,] 15 30 45 60 75
> f 数组行列
[,1] [,2] [,3] [,4] [,5]
[1,] 10 20 30 40 50
[2,] 11 22 33 44 55
[3,] 12 24 36 48 60
[4,] 13 26 39 52 65
[5,] 14 28 42 56 70
[6,] 15 30 45 60 75
> nrow(f)
[1] 6
> ncol(f)
[1] 5
a %*% B 是矩阵乘积,1*n数组和n*1数组可以看作是一个n维向量。
> a > b > a %*% b
[,1]
[1,] 55
> a
[1] 1 2 3 4 5
> b
[1] 1 2 3 4 5
> crossprod(a,b)
[,1]
[1,] 55
> t(a) %*% b
[,1]
[1,] 55
猜测,只是不知道如何解释他们的现实意义。
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
5 10 15 20 25
1+4+9 +16 +25 = 55
线性方程和矩阵的转:求解线性方程是矩阵乘法的逆运算。
solve(c) 代码1/c c的倒数。会损失精度。
> a > b > c > c
[,1]
[1,] 50
> solve(a,c)
[,1]
[1,] 5
最小二乘拟合结果lsfit返回
lsfit(X,y) 其中X为设计矩阵,y是观测值向量
rbind、cbind矩阵组合,在dim(维度)上链接,有些限制,要对齐。文档叫构建分区矩阵。
c函数忽略维度,直接连接,想试链表。
> a > b > cbind(a,b)
a b
[1,] 1 21
[2,] 2 22
[3,] 3 23
[4,] 4 24
[5,] 5 25
[6,] 6 26
[7,] 7 27
[8,] 8 28
[9,] 9 29
[10,] 10 30
> rbind(a,b)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
a 1 2 3 4 5 6 7 8 9 10
b 21 22 23 24 25 26 27 28 29 30
> c(a,b)
[1] 1 2 3 4 5 6 7 8 9 10 21 22 23 24 25 26 27 28 29
[20] 30
说明:state数组和incomes具有相同元素
> state > statef > statef
[1] tas sa qld nsw nsw nt wa wa qld vic nsw vic qld qld
[15] sa tas sa nt wa vic qld nsw nsw wa sa act nsw vic
[29] vic act
Levels: act nsw nt qld sa tas vic wa
> levels(statef)
[1] "act" "nsw" "nt" "qld" "sa" "tas" "vic" "wa"
> incomes + 61, 61, 61, 58, 51, 48, 65, 49, 49, 41, 48, 52, 46,
+ 59, 46, 58, 43)
>
> incomes
[1] 60 49 40 61 64 60 59 54 62 69 70 42 56 61 61 61 58 51 48
[20] 65 49 49 41 48 52 46 59 46 58 43
> incmeans > incmeans
act nsw nt qld sa tas vic wa
44.50000 57.33333 55.50000 53.60000 55.00000 60.50000 56.00000 52.25000
> stderr > stderr
function(x) sqrt(var(x)/length(x))
> incster > incster
act nsw nt qld sa tas vic wa
1.500000 4.310195 4.500000 4.106093 2.738613 0.500000 5.244044 2.657536
> statefr >
> statefr >
> factor(cut(incomes, breaks = 35+10*(0:7))) -> incomef
> table(incomef,statef)
statef
incomef act nsw nt qld sa tas vic wa
(35,45] 1 1 0 1 0 0 1 0
(45,55] 1 1 1 1 2 0 1 3
(55,65] 0 3 1 3 2 2 2 1
(65,75] 0 1 0 0 0 0 1 0
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15711267/viewspace-1062867/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15711267/viewspace-1062867/