October 11th, 2016
Describe each type
c(1,2,3)c(TRUE, TRUE, FALSE, TRUE)c("alpha", 'beta', "gamma")weight > 25factor(c("head","tail"))factor(rep("male",6), levels=c("male","female"))4:9seq(4,10,2)rep(1,3)rep(c(TRUE,FALSE),3)rep(c(TRUE,FALSE),c(3,3))c(NA,TRUE, FALSE)Special characters are coded with two symbols: \", \\, \n, \t.
We use <- for assignment.
Variable names start with a letter, and are followd by a letter, number or dot.
> state.x77
Population Income Illiteracy Life Exp Murder HS Grad Frost
Alabama 3615 3624 2.1 69.05 15.1 41.3 20
Alaska 365 6315 1.5 69.31 11.3 66.7 152
Arizona 2212 4530 1.8 70.55 7.8 58.1 15
Arkansas 2110 3378 1.9 70.66 10.1 39.9 65
California 21198 5114 1.1 71.71 10.3 62.6 20
Colorado 2541 4884 0.7 72.06 6.8 63.9 166
Connecticut 3100 5348 1.1 72.48 3.1 56.0 139
Delaware 579 4809 0.9 70.06 6.2 54.6 103
Florida 8277 4815 1.3 70.66 10.7 52.6 11
Georgia 4931 4091 2.0 68.54 13.9 40.6 60
Hawaii 868 4963 1.9 73.60 6.2 61.9 0
Idaho 813 4119 0.6 71.87 5.3 59.5 126
Illinois 11197 5107 0.9 70.14 10.3 52.6 127
Indiana 5313 4458 0.7 70.88 7.1 52.9 122
Iowa 2861 4628 0.5 72.56 2.3 59.0 140
Kansas 2280 4669 0.6 72.58 4.5 59.9 114
Kentucky 3387 3712 1.6 70.10 10.6 38.5 95
Louisiana 3806 3545 2.8 68.76 13.2 42.2 12
Maine 1058 3694 0.7 70.39 2.7 54.7 161
Maryland 4122 5299 0.9 70.22 8.5 52.3 101
Massachusetts 5814 4755 1.1 71.83 3.3 58.5 103
Michigan 9111 4751 0.9 70.63 11.1 52.8 125
Minnesota 3921 4675 0.6 72.96 2.3 57.6 160
Mississippi 2341 3098 2.4 68.09 12.5 41.0 50
Missouri 4767 4254 0.8 70.69 9.3 48.8 108
Montana 746 4347 0.6 70.56 5.0 59.2 155
Nebraska 1544 4508 0.6 72.60 2.9 59.3 139
Nevada 590 5149 0.5 69.03 11.5 65.2 188
New Hampshire 812 4281 0.7 71.23 3.3 57.6 174
New Jersey 7333 5237 1.1 70.93 5.2 52.5 115
New Mexico 1144 3601 2.2 70.32 9.7 55.2 120
New York 18076 4903 1.4 70.55 10.9 52.7 82
North Carolina 5441 3875 1.8 69.21 11.1 38.5 80
North Dakota 637 5087 0.8 72.78 1.4 50.3 186
Ohio 10735 4561 0.8 70.82 7.4 53.2 124
Oklahoma 2715 3983 1.1 71.42 6.4 51.6 82
Oregon 2284 4660 0.6 72.13 4.2 60.0 44
Pennsylvania 11860 4449 1.0 70.43 6.1 50.2 126
Rhode Island 931 4558 1.3 71.90 2.4 46.4 127
South Carolina 2816 3635 2.3 67.96 11.6 37.8 65
South Dakota 681 4167 0.5 72.08 1.7 53.3 172
Tennessee 4173 3821 1.7 70.11 11.0 41.8 70
Texas 12237 4188 2.2 70.90 12.2 47.4 35
Utah 1203 4022 0.6 72.90 4.5 67.3 137
Vermont 472 3907 0.6 71.64 5.5 57.1 168
Virginia 4981 4701 1.4 70.08 9.5 47.8 85
Washington 3559 4864 0.6 71.72 4.3 63.5 32
West Virginia 1799 3617 1.4 69.48 6.7 41.6 100
Wisconsin 4589 4468 0.7 72.48 3.0 54.5 149
Wyoming 376 4566 0.6 70.29 6.9 62.9 173
Area
Alabama 50708
Alaska 566432
Arizona 113417
Arkansas 51945
California 156361
Colorado 103766
Connecticut 4862
Delaware 1982
Florida 54090
Georgia 58073
Hawaii 6425
Idaho 82677
Illinois 55748
Indiana 36097
Iowa 55941
Kansas 81787
Kentucky 39650
Louisiana 44930
Maine 30920
Maryland 9891
Massachusetts 7826
Michigan 56817
Minnesota 79289
Mississippi 47296
Missouri 68995
Montana 145587
Nebraska 76483
Nevada 109889
New Hampshire 9027
New Jersey 7521
New Mexico 121412
New York 47831
North Carolina 48798
North Dakota 69273
Ohio 40975
Oklahoma 68782
Oregon 96184
Pennsylvania 44966
Rhode Island 1049
South Carolina 30225
South Dakota 75955
Tennessee 41328
Texas 262134
Utah 82096
Vermont 9267
Virginia 39780
Washington 66570
West Virginia 24070
Wisconsin 54464
Wyoming 97203
Like vectors but in 2 dimensions
> weight
[1] 60 72 57 90 95 72
> matrix(weight, nrow=2, ncol=3)
[,1] [,2] [,3] [1,] 60 57 95 [2,] 72 90 72
Values go column-by-column
We can ask to fill it row-by-row
> weight
[1] 60 72 57 90 95 72
> matrix(weight, nrow=2, ncol=3, byrow=T)
[,1] [,2] [,3] [1,] 60 72 57 [2,] 90 95 72
> M <- matrix(weight, nrow=2, ncol=3) > dim(M)
[1] 2 3
> nrow(M)
[1] 2
> ncol(M)
[1] 3
> colnames(M) <- c("A","B","C")
> rownames(M) <- c("x","y")
> M
A B C x 60 57 95 y 72 90 72
> M[2, ]
A B C 72 90 72
> M[ ,3]
x y 95 72
Notice that sometimes the answer is a vector, other times is a matrix
> M[ ,2:3]
B C x 57 95 y 90 72
> M[ ,3]
x y 95 72
To avoid a matrix column becoming a vector, use drop=FALSE
> M[ ,3]
x y 95 72
> M[ ,3, drop=FALSE]
C x 95 y 72
Make a copy of the matrix state.x77 into M
> M <- head(state.x77) > M
Population Income Illiteracy Life Exp Murder HS Grad Frost
Alabama 3615 3624 2.1 69.05 15.1 41.3 20
Alaska 365 6315 1.5 69.31 11.3 66.7 152
Arizona 2212 4530 1.8 70.55 7.8 58.1 15
Arkansas 2110 3378 1.9 70.66 10.1 39.9 65
California 21198 5114 1.1 71.71 10.3 62.6 20
Colorado 2541 4884 0.7 72.06 6.8 63.9 166
Area
Alabama 50708
Alaska 566432
Arizona 113417
Arkansas 51945
California 156361
Colorado 103766
state.abb