Watch a video of this section

R Programming for Data Science, by Roger D. Peng

1 Objects

x <- c(1, 2, 3.4)
x
[1] 1.0 2.0 3.4
y <- c (1,2, 3.4567)
y
[1] 1.0000 2.0000 3.4567
z <- c (TRUE, T, F)
z
[1]  TRUE  TRUE FALSE
class(z)
[1] "logical"
class (x)
[1] "numeric"
r <- c(1+0i,2+3i, 4)
r
[1] 1+0i 2+3i 4+0i
-21/0
[1] -Inf
0/0
[1] NaN
class(NaN)
[1] "numeric"
1+Inf
[1] Inf
Inf-Inf
[1] NaN
0^0
[1] 1
Inf * -Inf
[1] -Inf

2 Numbers

c (1,2,3, 4, 5, "a")
[1] "1" "2" "3" "4" "5" "a"
c(TRUE, 0, 1, 0, -1)
[1]  1  0  1  0 -1
c(1,2,3,1+2i)
[1] 1+0i 2+0i 3+0i 1+2i
as.character(x)
[1] "1"   "2"   "3.4"
-1:5
[1] -1  0  1  2  3  4  5
as.logical(-1:5)
[1]  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE
as.logical(1.2)
[1] TRUE
as.logical("TRUE")
[1] TRUE
as.logical ("acb")
[1] NA
x
[1] 1.0 2.0 3.4
as.complex(x)
[1] 1.0+0i 2.0+0i 3.4+0i

3 Attributes

x <- 1:5
y <- 6:10
z <- c (-4,0,3,12,5)

M <- rbind (x,y,z)
M
  [,1] [,2] [,3] [,4] [,5]
x    1    2    3    4    5
y    6    7    8    9   10
z   -4    0    3   12    5
dimnames (M) [[2]] <- c("col1", "col2", "col3", "col4", "col5")
dimnames (M) [[1]] <- c("row1", "row2", "row3")
attributes(M)
$dim
[1] 3 5

$dimnames
$dimnames[[1]]
[1] "row1" "row2" "row3"

$dimnames[[2]]
[1] "col1" "col2" "col3" "col4" "col5"
M
     col1 col2 col3 col4 col5
row1    1    2    3    4    5
row2    6    7    8    9   10
row3   -4    0    3   12    5
class(M)
[1] "matrix" "array" 
typeof(M)
[1] "double"
dimnames(M)
[[1]]
[1] "row1" "row2" "row3"

[[2]]
[1] "col1" "col2" "col3" "col4" "col5"

#Lists

x1 <- 1:3                   #vector of integers
x2 <- list (1L, 3.4, TRUE)  #list
x3 <- 1+3i                  #vector of complex of length 1
length(x1)
[1] 3
length(x2)
[1] 3
length(x3)
[1] 1
list (x1,x2,x3)
[[1]]
[1] 1 2 3

[[2]]
[[2]][[1]]
[1] 1

[[2]][[2]]
[1] 3.4

[[2]][[3]]
[1] TRUE


[[3]]
[1] 1+3i
list(x1,x2,M)
[[1]]
[1] 1 2 3

[[2]]
[[2]][[1]]
[1] 1

[[2]][[2]]
[1] 3.4

[[2]][[3]]
[1] TRUE


[[3]]
     col1 col2 col3 col4 col5
row1    1    2    3    4    5
row2    6    7    8    9   10
row3   -4    0    3   12    5
A <- array(1:24, dim= c(2,3,4))
dim(A)
[1] 2 3 4
attributes(A)
$dim
[1] 2 3 4
class(NaN)
[1] "numeric"
1+NaN
[1] NaN
Inf-Inf
[1] NaN
-3 * Inf
[1] -Inf
Inf+NaN
[1] NaN
0*NaN
[1] NaN
NaN/NaN
[1] NaN
LS0tDQp0aXRsZTogIk1vZHVsZSAzLjIgT2JqZWN0cywgTnVtYmVycyBhbmQgQXR0cmlidXRlcyINCm91dHB1dDogDQogIGh0bWxfbm90ZWJvb2s6DQogICAgdG9jOiB5ZXMNCiAgICBudW1iZXJfc2VjdGlvbnM6IHRydWUNCiAgd29yZF9kb2N1bWVudDoNCiAgICB0b2M6IHllcw0KICAgIG51bWJlcl9zZWN0aW9uczogdHJ1ZQ0KICBodG1sX2RvY3VtZW50Og0KICAgIHRvYzogeWVzIA0KICAgIG51bWJlcl9zZWN0aW9uczogdHJ1ZQ0KICBwZGZfZG9jdW1lbnQ6DQogICAgdG9jOiB5ZXMNCiAgICB0b2NfZGVwdGg6IDMNCiAgICBudW1iZXJfc2VjdGlvbnM6IHRydWUNCi0tLQ0KW1dhdGNoIGEgdmlkZW8gb2YgdGhpcyBzZWN0aW9uXShodHRwczovL3lvdXR1LmJlL2JlL3ZHWTVpX0oyYy1jKQ0KDQpbUiBQcm9ncmFtbWluZyBmb3IgRGF0YSBTY2llbmNlXShodHRwczovL2Jvb2tkb3duLm9yZy9yZHBlbmcvcnByb2dkYXRhc2NpZW5jZS8pLCBieSAgUm9nZXIgRC4gUGVuZyANCg0KIVtdKGJvb2tjb3Zlci5wbmcpDQoNCiMgT2JqZWN0cw0KDQpgYGB7cn0NCnggPC0gYygxLCAyLCAzLjQpDQp4DQpgYGANCg0KYGBge3J9DQp5IDwtIGMgKDEsMiwgMy40NTY3KQ0KeQ0KYGBgDQpgYGB7cn0NCnogPC0gYyAoVFJVRSwgVCwgRikNCnoNCmBgYA0KYGBge3J9DQpjbGFzcyh6KQ0KYGBgDQoNCmBgYHtyfQ0KY2xhc3MgKHgpDQpgYGANCmBgYHtyfQ0KciA8LSBjKDErMGksMiszaSwgNCkNCnINCmBgYA0KYGBge3J9DQotMjEvMA0KYGBgDQpgYGB7cn0NCjAvMA0KYGBgDQoNCmBgYHtyfQ0KY2xhc3MoTmFOKQ0KYGBgDQpgYGB7cn0NCjErSW5mDQpgYGANCmBgYHtyfQ0KSW5mLUluZg0KYGBgDQpgYGB7cn0NCjBeMA0KYGBgDQpgYGB7cn0NCkluZiAqIC1JbmYNCmBgYA0KIyBOdW1iZXJzDQoNCmBgYHtyfQ0KYyAoMSwyLDMsIDQsIDUsICJhIikNCmBgYA0KYGBge3J9DQpjKFRSVUUsIDAsIDEsIDAsIC0xKQ0KYGBgDQpgYGB7cn0NCmMoMSwyLDMsMSsyaSkNCmBgYA0KYGBge3J9DQphcy5jaGFyYWN0ZXIoeCkNCmBgYA0KYGBge3J9DQotMTo1DQpgYGANCmBgYHtyfQ0KYXMubG9naWNhbCgtMTo1KQ0KYGBgDQpgYGB7cn0NCmFzLmxvZ2ljYWwoMS4yKQ0KYGBgDQpgYGB7cn0NCmFzLmxvZ2ljYWwoIlRSVUUiKQ0KYGBgDQpgYGB7cn0NCmFzLmxvZ2ljYWwgKCJhY2IiKQ0KYGBgDQpgYGB7cn0NCngNCmBgYA0KYGBge3J9DQphcy5jb21wbGV4KHgpDQpgYGANCg0KIyBBdHRyaWJ1dGVzDQoNCmBgYHtyfQ0KeCA8LSAxOjUNCnkgPC0gNjoxMA0KeiA8LSBjICgtNCwwLDMsMTIsNSkNCg0KTSA8LSByYmluZCAoeCx5LHopDQpNDQpgYGANCmBgYHtyfQ0KZGltbmFtZXMgKE0pIFtbMl1dIDwtIGMoImNvbDEiLCAiY29sMiIsICJjb2wzIiwgImNvbDQiLCAiY29sNSIpDQpkaW1uYW1lcyAoTSkgW1sxXV0gPC0gYygicm93MSIsICJyb3cyIiwgInJvdzMiKQ0KYXR0cmlidXRlcyhNKQ0KYGBgDQpgYGB7cn0NCk0NCmBgYA0KYGBge3J9DQpjbGFzcyhNKQ0KYGBgDQpgYGB7cn0NCnR5cGVvZihNKQ0KYGBgDQpgYGB7cn0NCmRpbW5hbWVzKE0pDQpgYGANCg0KI0xpc3RzDQoNCmBgYHtyfQ0KeDEgPC0gMTozICAgICAgICAgICAgICAgICAgICN2ZWN0b3Igb2YgaW50ZWdlcnMNCngyIDwtIGxpc3QgKDFMLCAzLjQsIFRSVUUpICAjbGlzdA0KeDMgPC0gMSszaSAgICAgICAgICAgICAgICAgICN2ZWN0b3Igb2YgY29tcGxleCBvZiBsZW5ndGggMQ0KYGBgDQoNCmBgYHtyfQ0KbGVuZ3RoKHgxKQ0KbGVuZ3RoKHgyKQ0KbGVuZ3RoKHgzKQ0KYGBgDQpgYGB7cn0NCmxpc3QgKHgxLHgyLHgzKQ0KYGBgDQpgYGB7cn0NCmxpc3QoeDEseDIsTSkNCmBgYA0KYGBge3J9DQpBIDwtIGFycmF5KDE6MjQsIGRpbT0gYygyLDMsNCkpDQpgYGANCg0KYGBge3J9DQpkaW0oQSkNCmBgYA0KYGBge3J9DQphdHRyaWJ1dGVzKEEpDQpgYGANCmBgYHtyfQ0KY2xhc3MoTmFOKQ0KYGBgDQpgYGB7cn0NCjErTmFODQpgYGANCmBgYHtyfQ0KSW5mLUluZg0KYGBgDQoNCmBgYHtyfQ0KLTMgKiBJbmYNCmBgYA0KYGBge3J9DQpJbmYrTmFODQpgYGANCmBgYHtyfQ0KMCpOYU4NCmBgYA0KYGBge3J9DQpOYU4vTmFODQpgYGANCg0KDQoNCg0KYGBge3IgZXZhbD1GLGVjaG89RkFMU0V9DQojaW5zdGFsbC5wYWNrYWdlcygndGlueXRleCcpDQp0aW55dGV4OjoNCiAgaW5zdGFsbF90aW55dGV4KCkNCmBgYA0K