Question 1

n_dims <- runif(1,3,10)
n_dims <- as.integer(n_dims)
n_dims2 <- seq(1:(n_dims^2))
sample(n_dims2) #sample vector
##  [1] 52 59 45 66 22 11 18 21 78 38 35 77 28  5 72 26 60 64 32 16  8 81 24 68 40
## [26] 49 15 57 39 56 55 43 75 62  2 31 76 19 70 29 73 41 14 80 54 65 33 30  4 25
## [51]  9 23 74 36  7 47 10 44  1 20 46 12 51 69 17 61 48 42 63 58  6 67 13 53 27
## [76] 71 79 50 34 37  3
n_dims2_matrix <- matrix(n_dims2, ncol = n_dims, byrow = TRUE) #create matrix
n_dims2_matrix #print matrix
##       [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
##  [1,]    1    2    3    4    5    6    7    8    9
##  [2,]   10   11   12   13   14   15   16   17   18
##  [3,]   19   20   21   22   23   24   25   26   27
##  [4,]   28   29   30   31   32   33   34   35   36
##  [5,]   37   38   39   40   41   42   43   44   45
##  [6,]   46   47   48   49   50   51   52   53   54
##  [7,]   55   56   57   58   59   60   61   62   63
##  [8,]   64   65   66   67   68   69   70   71   72
##  [9,]   73   74   75   76   77   78   79   80   81
t(n_dims2_matrix) #transpose matrix
##       [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
##  [1,]    1   10   19   28   37   46   55   64   73
##  [2,]    2   11   20   29   38   47   56   65   74
##  [3,]    3   12   21   30   39   48   57   66   75
##  [4,]    4   13   22   31   40   49   58   67   76
##  [5,]    5   14   23   32   41   50   59   68   77
##  [6,]    6   15   24   33   42   51   60   69   78
##  [7,]    7   16   25   34   43   52   61   70   79
##  [8,]    8   17   26   35   44   53   62   71   80
##  [9,]    9   18   27   36   45   54   63   72   81
sum(n_dims2_matrix[,1]) #sum of first row
## [1] 333
sum(n_dims2_matrix[,n_dims]) #sum of last row
## [1] 405
mean(n_dims2_matrix[,1]) #mean of first row
## [1] 37
mean(n_dims2_matrix[,n_dims]) #mean of last row
## [1] 45
eigen(n_dims2_matrix)
## eigen() decomposition
## $values
## [1]  3.817315e+02+0.0000e+00i -1.273146e+01+0.0000e+00i
## [3]  1.425937e-14+0.0000e+00i -5.978131e-15+6.0318e-15i
## [5] -5.978131e-15-6.0318e-15i  7.415305e-15+0.0000e+00i
## [7]  2.129759e-15+0.0000e+00i -1.021053e-15+0.0000e+00i
## [9]  3.741035e-16+0.0000e+00i
## 
## $vectors
##                 [,1]           [,2]           [,3]                    [,4]
##  [1,] -0.04421135+0i  0.53569778+0i  0.22259379+0i  0.08426958+0.04021902i
##  [2,] -0.10624199+0i  0.40683688+0i -0.16126397+0i -0.00086269+0.07863143i
##  [3,] -0.16827263+0i  0.27797597+0i  0.05065003+0i -0.08881057+0.08491135i
##  [4,] -0.23030327+0i  0.14911507+0i  0.18219998+0i -0.13759512-0.04042975i
##  [5,] -0.29233390+0i  0.02025417+0i -0.03771172+0i  0.24623388-0.09199648i
##  [6,] -0.35436454+0i -0.10860673+0i -0.85708057+0i  0.29448602-0.39485081i
##  [7,] -0.41639518+0i -0.23746763+0i  0.32750401+0i -0.53093082+0.00000000i
##  [8,] -0.47842582+0i -0.36632853+0i  0.20027789+0i -0.25381064+0.37304691i
##  [9,] -0.54045645+0i -0.49518944+0i  0.07283055+0i  0.38702037-0.04953166i
##                          [,5]            [,6]           [,7]           [,8]
##  [1,]  0.08426958-0.04021902i -0.320097377+0i -0.18327780+0i -0.02225211+0i
##  [2,] -0.00086269-0.07863143i  0.008426601+0i -0.03945545+0i  0.03803621+0i
##  [3,] -0.08881057-0.08491135i  0.231650006+0i  0.16179535+0i  0.32957228+0i
##  [4,] -0.13759512+0.04042975i -0.053176583+0i  0.06124515+0i -0.05334482+0i
##  [5,]  0.24623388+0.09199648i  0.307289077+0i  0.62885362+0i -0.77034254+0i
##  [6,]  0.29448602+0.39485081i  0.337197061+0i -0.44170913+0i  0.07732643+0i
##  [7,] -0.53093082+0.00000000i -0.630251601+0i -0.50831841+0i  0.51989670+0i
##  [8,] -0.25381064-0.37304691i  0.397531401+0i  0.29176242+0i  0.01065132+0i
##  [9,]  0.38702037+0.04953166i -0.278568586+0i  0.02910425+0i -0.12954347+0i
##                 [,9]
##  [1,] -0.04079522+0i
##  [2,] -0.03295809+0i
##  [3,] -0.05151749+0i
##  [4,] -0.04138519+0i
##  [5,]  0.75624159+0i
##  [6,] -0.36815250+0i
##  [7,] -0.49723601+0i
##  [8,]  0.14706246+0i
##  [9,]  0.12874044+0i
typeof(n_dims2_matrix) #integer
## [1] "integer"

Question 2

my_matrix <- matrix(data = runif(16), nrow = 4, byrow =TRUE)
my_logical <- runif(100)
my_logical <- my_logical <= 0.5
my_logical
##   [1] FALSE  TRUE  TRUE FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE
##  [13]  TRUE  TRUE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE
##  [25]  TRUE FALSE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE FALSE FALSE  TRUE
##  [37]  TRUE FALSE  TRUE  TRUE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE
##  [49]  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE  TRUE
##  [61]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE
##  [73] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE
##  [85] FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE
##  [97]  TRUE FALSE  TRUE  TRUE
my_letters <- sample(letters[1:26])
my_list <- list(my_matrix,my_logical,my_letters)
my_list
## [[1]]
##            [,1]       [,2]      [,3]       [,4]
## [1,] 0.29057185 0.79005211 0.7541823 0.54634748
## [2,] 0.05648443 0.68418184 0.6610431 0.01775128
## [3,] 0.11752284 0.07585289 0.5950542 0.33300207
## [4,] 0.37186819 0.55652235 0.5418990 0.98335200
## 
## [[2]]
##   [1] FALSE  TRUE  TRUE FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE
##  [13]  TRUE  TRUE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE
##  [25]  TRUE FALSE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE FALSE FALSE  TRUE
##  [37]  TRUE FALSE  TRUE  TRUE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE
##  [49]  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE  TRUE
##  [61]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE
##  [73] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE
##  [85] FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE
##  [97]  TRUE FALSE  TRUE  TRUE
## 
## [[3]]
##  [1] "x" "l" "a" "q" "o" "u" "t" "r" "c" "d" "s" "b" "w" "z" "v" "n" "p" "f" "g"
## [20] "h" "i" "y" "m" "j" "e" "k"
new_list <- list(my_matrix[2,2], my_logical[2], my_letters[2])
new_list
## [[1]]
## [1] 0.6841818
## 
## [[2]]
## [1] TRUE
## 
## [[3]]
## [1] "l"
typeof(my_matrix)
## [1] "double"
typeof(my_logical)
## [1] "logical"
typeof(my_letters)
## [1] "character"
unlisted <- unlist(new_list)
unlisted
## [1] "0.684181839926168" "TRUE"              "l"
new_list
## [[1]]
## [1] 0.6841818
## 
## [[2]]
## [1] TRUE
## 
## [[3]]
## [1] "l"
unlisted2 <- c(new_list[[1]],new_list[[2]],new_list[[3]])
unlisted2
## [1] "0.684181839926168" "TRUE"              "l"
typeof(unlisted2)
## [1] "character"

Question 3

my_unis <- runif(26,0,10)
my_letters <- sample(toupper(letters[1:26]))
df <- data.frame(my_unis,my_letters)
df
##       my_unis my_letters
## 1  3.27984720          F
## 2  0.05088587          M
## 3  3.56866097          X
## 4  7.41333974          P
## 5  0.93524081          B
## 6  6.77826690          Q
## 7  6.29402279          A
## 8  2.73003461          C
## 9  2.58467559          V
## 10 6.31705594          T
## 11 7.00192146          R
## 12 5.70515201          U
## 13 7.13231864          L
## 14 4.55619339          I
## 15 4.47593770          E
## 16 3.92847178          K
## 17 2.10522213          S
## 18 7.30987872          J
## 19 8.55751600          D
## 20 7.67768820          W
## 21 2.55145629          H
## 22 3.13408586          Y
## 23 0.66595394          Z
## 24 3.25243569          G
## 25 8.88750195          N
## 26 2.14315828          O
df[sample(length(df$my_unis), replace = FALSE, size = 4),1] = NA
df
##       my_unis my_letters
## 1  3.27984720          F
## 2  0.05088587          M
## 3  3.56866097          X
## 4  7.41333974          P
## 5  0.93524081          B
## 6  6.77826690          Q
## 7  6.29402279          A
## 8  2.73003461          C
## 9  2.58467559          V
## 10 6.31705594          T
## 11         NA          R
## 12 5.70515201          U
## 13         NA          L
## 14 4.55619339          I
## 15 4.47593770          E
## 16 3.92847178          K
## 17 2.10522213          S
## 18 7.30987872          J
## 19 8.55751600          D
## 20         NA          W
## 21 2.55145629          H
## 22 3.13408586          Y
## 23         NA          Z
## 24 3.25243569          G
## 25 8.88750195          N
## 26 2.14315828          O
typeof(df)
## [1] "list"
which(is.na(df))
## [1] 11 13 20 23
df[order(df$my_letters, decreasing = FALSE),]
##       my_unis my_letters
## 7  6.29402279          A
## 5  0.93524081          B
## 8  2.73003461          C
## 19 8.55751600          D
## 15 4.47593770          E
## 1  3.27984720          F
## 24 3.25243569          G
## 21 2.55145629          H
## 14 4.55619339          I
## 18 7.30987872          J
## 16 3.92847178          K
## 13         NA          L
## 2  0.05088587          M
## 25 8.88750195          N
## 26 2.14315828          O
## 4  7.41333974          P
## 6  6.77826690          Q
## 11         NA          R
## 17 2.10522213          S
## 10 6.31705594          T
## 12 5.70515201          U
## 9  2.58467559          V
## 20         NA          W
## 3  3.56866097          X
## 22 3.13408586          Y
## 23         NA          Z
df
##       my_unis my_letters
## 1  3.27984720          F
## 2  0.05088587          M
## 3  3.56866097          X
## 4  7.41333974          P
## 5  0.93524081          B
## 6  6.77826690          Q
## 7  6.29402279          A
## 8  2.73003461          C
## 9  2.58467559          V
## 10 6.31705594          T
## 11         NA          R
## 12 5.70515201          U
## 13         NA          L
## 14 4.55619339          I
## 15 4.47593770          E
## 16 3.92847178          K
## 17 2.10522213          S
## 18 7.30987872          J
## 19 8.55751600          D
## 20         NA          W
## 21 2.55145629          H
## 22 3.13408586          Y
## 23         NA          Z
## 24 3.25243569          G
## 25 8.88750195          N
## 26 2.14315828          O
mean(df$my_unis, na.rm = TRUE)
## [1] 4.389047