Question 1
n_dims <- sample(3:10,1)
print(n_dims)
## [1] 8
v <- 1:(n_dims^2)
print(v)
## [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
## [26] 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
## [51] 51 52 53 54 55 56 57 58 59 60 61 62 63 64
vShuffle <-sample(v)
print(vShuffle)
## [1] 18 33 22 34 21 36 14 51 17 3 6 35 54 52 24 42 59 44 58 10 61 32 64 8 28
## [26] 26 20 2 41 16 13 46 43 57 1 23 63 53 37 4 31 12 9 55 50 49 56 19 15 40
## [51] 47 62 29 30 27 5 7 45 11 60 39 25 48 38
m <- matrix(data=vShuffle,nrow=n_dims)
print(m)
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
## [1,] 18 17 59 28 43 31 15 7
## [2,] 33 3 44 26 57 12 40 45
## [3,] 22 6 58 20 1 9 47 11
## [4,] 34 35 10 2 23 55 62 60
## [5,] 21 54 61 41 63 50 29 39
## [6,] 36 52 32 16 53 49 30 25
## [7,] 14 24 64 13 37 56 27 48
## [8,] 51 42 8 46 4 19 5 38
mTrans <- t(m)
print(mTrans)
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
## [1,] 18 33 22 34 21 36 14 51
## [2,] 17 3 6 35 54 52 24 42
## [3,] 59 44 58 10 61 32 64 8
## [4,] 28 26 20 2 41 16 13 46
## [5,] 43 57 1 23 63 53 37 4
## [6,] 31 12 9 55 50 49 56 19
## [7,] 15 40 47 62 29 30 27 5
## [8,] 7 45 11 60 39 25 48 38
sum(mTrans[1,])
## [1] 229
mean(mTrans[1,])
## [1] 28.625
sum(mTrans[n_dims,])
## [1] 273
mean(mTrans[n_dims,])
## [1] 34.125
EmTrans <- eigen(mTrans)
print(EmTrans)
## eigen() decomposition
## $values
## [1] 257.01325+ 0.00000i 50.15916+ 0.00000i -37.31269+21.19640i
## [4] -37.31269-21.19640i 19.82315+22.96087i 19.82315-22.96087i
## [7] -7.09667+24.32990i -7.09667-24.32990i
##
## $vectors
## [,1] [,2] [,3] [,4]
## [1,] -0.3078650+0i 0.002871269+0i -0.2772793-0.1546606i -0.2772793+0.1546606i
## [2,] -0.3130162+0i -0.230200759+0i 0.1550769-0.4127303i 0.1550769+0.4127303i
## [3,] -0.4708084+0i 0.756887015+0i 0.3312488+0.1525136i 0.3312488-0.1525136i
## [4,] -0.2662495+0i -0.111609828+0i 0.1441682-0.1855465i 0.1441682+0.1855465i
## [5,] -0.3677695+0i -0.395560380+0i -0.0264942+0.2860473i -0.0264942-0.2860473i
## [6,] -0.3681815+0i 0.083866642+0i 0.3049233+0.0796511i 0.3049233-0.0796511i
## [7,] -0.3445615+0i 0.429868514+0i -0.5407839+0.0000000i -0.5407839+0.0000000i
## [8,] -0.3537738+0i -0.115655056+0i -0.0302217+0.2034573i -0.0302217-0.2034573i
## [,5] [,6] [,7]
## [1,] 0.47939073-0.33589983i 0.47939073+0.33589983i -0.49775629+0.00000000i
## [2,] -0.06063641+0.01714536i -0.06063641-0.01714536i -0.01756536-0.26395740i
## [3,] -0.09574704+0.20414870i -0.09574704-0.20414870i 0.08015431+0.03435458i
## [4,] 0.15443736-0.02221509i 0.15443736+0.02221509i -0.28486333+0.28706098i
## [5,] -0.59461750+0.00000000i -0.59461750+0.00000000i -0.17862656+0.22495750i
## [6,] 0.01777036-0.14916539i 0.01777036+0.14916539i 0.40902554-0.25478815i
## [7,] 0.07256078+0.19851208i 0.07256078-0.19851208i 0.37491416+0.07075903i
## [8,] 0.35832362+0.17027185i 0.35832362-0.17027185i 0.09355056-0.20505890i
## [,8]
## [1,] -0.49775629+0.00000000i
## [2,] -0.01756536+0.26395740i
## [3,] 0.08015431-0.03435458i
## [4,] -0.28486333-0.28706098i
## [5,] -0.17862656-0.22495750i
## [6,] 0.40902554+0.25478815i
## [7,] 0.37491416-0.07075903i
## [8,] 0.09355056+0.20505890i
# $values are the values that each term is multiplied by to get the eigenvectors
# $vectors are the actual vectors created by multiplying the $values and the terms in the matrix
typeof(EmTrans[["$values"]])
## [1] "NULL"
typeof(EmTrans[["$vectors"]])
## [1] "NULL"
Question 2
my_matrix <- matrix(data=runif(16),nrow=4)
print(my_matrix)
## [,1] [,2] [,3] [,4]
## [1,] 0.8853624 0.6849987 0.1230459 0.7746027
## [2,] 0.7694606 0.9497774 0.8874044 0.3916229
## [3,] 0.9792345 0.9660570 0.3032803 0.2357949
## [4,] 0.2294372 0.3857119 0.9395571 0.2675108
mylogical <- runif(1:100)
my_logical <- mylogical < 0.5
print (my_logical)
## [1] TRUE TRUE FALSE FALSE FALSE FALSE FALSE TRUE FALSE TRUE FALSE FALSE
## [13] TRUE FALSE TRUE TRUE FALSE TRUE FALSE TRUE FALSE TRUE FALSE FALSE
## [25] TRUE FALSE FALSE FALSE TRUE TRUE TRUE FALSE TRUE FALSE FALSE TRUE
## [37] FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE FALSE TRUE TRUE TRUE
## [49] TRUE TRUE FALSE FALSE TRUE TRUE FALSE FALSE TRUE FALSE TRUE FALSE
## [61] FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE
## [73] TRUE FALSE FALSE FALSE TRUE FALSE FALSE TRUE TRUE TRUE FALSE TRUE
## [85] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE
## [97] TRUE FALSE FALSE FALSE
myletters <- letters[1:26]
my_letters <- sample(myletters)
print(my_letters)
## [1] "c" "t" "q" "x" "z" "u" "v" "k" "a" "h" "m" "f" "w" "i" "s" "o" "e" "b" "y"
## [20] "n" "g" "l" "d" "p" "j" "r"
MyList <- list(my_matrix[2,2],my_logical[2],my_letters[2])
print(MyList)
## [[1]]
## [1] 0.9497774
##
## [[2]]
## [1] TRUE
##
## [[3]]
## [1] "t"
typeof(MyList[[1]])
## [1] "double"
typeof(MyList[[2]])
## [1] "logical"
typeof(MyList[[3]])
## [1] "character"
NewAtomicVector <- c(MyList[[1]],MyList[[2]],MyList[[3]])
print(NewAtomicVector)
## [1] "0.949777432950214" "TRUE" "t"
typeof(NewAtomicVector)
## [1] "character"
Question 3
my_unis <- sample(0:10,26,replace=TRUE)
print(my_unis)
## [1] 1 10 10 10 7 9 3 4 1 2 7 6 0 5 0 4 10 7 5 7 0 4 5 9 1
## [26] 4
myletters <- letters[1:26]
my_letters <- sample(myletters)
print(my_letters)
## [1] "w" "b" "n" "h" "t" "i" "m" "p" "f" "q" "g" "x" "s" "d" "c" "r" "v" "u" "z"
## [20] "e" "y" "j" "o" "k" "a" "l"
MyDF <- data.frame(my_unis,my_letters)
print(MyDF)
## my_unis my_letters
## 1 1 w
## 2 10 b
## 3 10 n
## 4 10 h
## 5 7 t
## 6 9 i
## 7 3 m
## 8 4 p
## 9 1 f
## 10 2 q
## 11 7 g
## 12 6 x
## 13 0 s
## 14 5 d
## 15 0 c
## 16 4 r
## 17 10 v
## 18 7 u
## 19 5 z
## 20 7 e
## 21 0 y
## 22 4 j
## 23 5 o
## 24 9 k
## 25 1 a
## 26 4 l
MyDF[sample(0:26,4),] <- NA
print(MyDF)
## my_unis my_letters
## 1 1 w
## 2 10 b
## 3 10 n
## 4 10 h
## 5 NA <NA>
## 6 9 i
## 7 NA <NA>
## 8 4 p
## 9 1 f
## 10 2 q
## 11 7 g
## 12 6 x
## 13 0 s
## 14 5 d
## 15 0 c
## 16 4 r
## 17 10 v
## 18 7 u
## 19 5 z
## 20 NA <NA>
## 21 0 y
## 22 4 j
## 23 NA <NA>
## 24 9 k
## 25 1 a
## 26 4 l
is.na(MyDF)
## my_unis my_letters
## [1,] FALSE FALSE
## [2,] FALSE FALSE
## [3,] FALSE FALSE
## [4,] FALSE FALSE
## [5,] TRUE TRUE
## [6,] FALSE FALSE
## [7,] TRUE TRUE
## [8,] FALSE FALSE
## [9,] FALSE FALSE
## [10,] FALSE FALSE
## [11,] FALSE FALSE
## [12,] FALSE FALSE
## [13,] FALSE FALSE
## [14,] FALSE FALSE
## [15,] FALSE FALSE
## [16,] FALSE FALSE
## [17,] FALSE FALSE
## [18,] FALSE FALSE
## [19,] FALSE FALSE
## [20,] TRUE TRUE
## [21,] FALSE FALSE
## [22,] FALSE FALSE
## [23,] TRUE TRUE
## [24,] FALSE FALSE
## [25,] FALSE FALSE
## [26,] FALSE FALSE
MyDF2 <- MyDF[order(MyDF$my_letters),]
print(MyDF2)
## my_unis my_letters
## 25 1 a
## 2 10 b
## 15 0 c
## 14 5 d
## 9 1 f
## 11 7 g
## 4 10 h
## 6 9 i
## 22 4 j
## 24 9 k
## 26 4 l
## 3 10 n
## 8 4 p
## 10 2 q
## 16 4 r
## 13 0 s
## 18 7 u
## 17 10 v
## 1 1 w
## 12 6 x
## 21 0 y
## 19 5 z
## 5 NA <NA>
## 7 NA <NA>
## 20 NA <NA>
## 23 NA <NA>
# MyDF3 <- MyDF2[!rowSums(is.na(MyDF2)),]
MyDF3 <- MyDF2[complete.cases(MyDF2),]
print(MyDF3)
## my_unis my_letters
## 25 1 a
## 2 10 b
## 15 0 c
## 14 5 d
## 9 1 f
## 11 7 g
## 4 10 h
## 6 9 i
## 22 4 j
## 24 9 k
## 26 4 l
## 3 10 n
## 8 4 p
## 10 2 q
## 16 4 r
## 13 0 s
## 18 7 u
## 17 10 v
## 1 1 w
## 12 6 x
## 21 0 y
## 19 5 z
mean(MyDF3[,"my_unis"])
## [1] 4.954545