Question 1

random integer between 3 and 10

n_dims <- as.integer(runif(1, 3, 10))

print(n_dims)
## [1] 9

create a vector with n_dims dimensions

vector1 <- (1:n_dims**2)

randomize

vector1_rand <- sample(vector1)

create matrix

m <- matrix(data=vector1_rand,nrow=n_dims)

print(m)
##       [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
##  [1,]   51    9   39   40   23   43   66   73   31
##  [2,]   68   34   29   13   67   69   57    8   76
##  [3,]   56   12   17   38   47   50   60   28   72
##  [4,]   44   15   65   74   41   21   81   19   36
##  [5,]   49   48   59   25   35   14    4    7   32
##  [6,]   20   37    1   22   61   62   16   18   26
##  [7,]   30    5   54   46   53   71   75   52   33
##  [8,]   80   45   10   64   79   55   77   11   78
##  [9,]   58   42   27    2    3   63   24   70    6

transpose matrix

t_m <- t(m)

print(t_m)
##       [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
##  [1,]   51   68   56   44   49   20   30   80   58
##  [2,]    9   34   12   15   48   37    5   45   42
##  [3,]   39   29   17   65   59    1   54   10   27
##  [4,]   40   13   38   74   25   22   46   64    2
##  [5,]   23   67   47   41   35   61   53   79    3
##  [6,]   43   69   50   21   14   62   71   55   63
##  [7,]   66   57   60   81    4   16   75   77   24
##  [8,]   73    8   28   19    7   18   52   11   70
##  [9,]   31   76   72   36   32   26   33   78    6

sum and mean of first and last rows

sum(t_m[1,])
## [1] 456
sum(t_m[n_dims,])
## [1] 390
mean(t_m[1,])
## [1] 50.66667
mean(t_m[n_dims,])
## [1] 43.33333

Eigen values

e_m <- eigen(t_m, only.values = FALSE, EISPACK = FALSE)

print(e_m)
## eigen() decomposition
## $values
## [1] 361.973225+ 0.00000i -92.465402+ 0.00000i  70.620498+ 0.00000i
## [4]  11.826075+49.03886i  11.826075-49.03886i  -3.316836+25.07294i
## [7]  -3.316836-25.07294i  12.634436+ 0.00000i  -4.781233+ 0.00000i
## 
## $vectors
##               [,1]           [,2]           [,3]                  [,4]
##  [1,] 0.3921681+0i -0.06472733+0i  0.31251259+0i  0.0122603-0.2052888i
##  [2,] 0.2182220+0i  0.14323168+0i  0.46992441+0i  0.0879586+0.1829961i
##  [3,] 0.2766649+0i  0.49396271+0i -0.30163505+0i  0.5762162+0.0000000i
##  [4,] 0.2910069+0i -0.15380743+0i -0.49633009+0i -0.0018273+0.2456067i
##  [5,] 0.3591230+0i -0.37211806+0i  0.15625007+0i  0.0647003+0.3874844i
##  [6,] 0.4041807+0i  0.02842905+0i  0.33333783+0i -0.2558711+0.0111352i
##  [7,] 0.4026222+0i -0.24624286+0i -0.43360822+0i -0.1771359-0.0045936i
##  [8,] 0.2769182+0i  0.44801500+0i  0.04631714+0i -0.3684705-0.2953359i
##  [9,] 0.3259374+0i -0.55408133+0i  0.13597837+0i  0.1406342-0.1733102i
##                        [,5]                    [,6]                    [,7]
##  [1,]  0.0122603+0.2052888i -0.28416939+0.07737393i -0.28416939-0.07737393i
##  [2,]  0.0879586-0.1829961i -0.39627805+0.18727583i -0.39627805-0.18727583i
##  [3,]  0.5762162+0.0000000i  0.65751653+0.00000000i  0.65751653+0.00000000i
##  [4,] -0.0018273-0.2456067i -0.13838155-0.06770315i -0.13838155+0.06770315i
##  [5,]  0.0647003-0.3874844i  0.14180295+0.14027194i  0.14180295-0.14027194i
##  [6,] -0.2558711-0.0111352i -0.03180518-0.09923187i -0.03180518+0.09923187i
##  [7,] -0.1771359+0.0045936i  0.14532407+0.24129985i  0.14532407-0.24129985i
##  [8,] -0.3684705+0.2953359i -0.09091226-0.24563229i -0.09091226+0.24563229i
##  [9,]  0.1406342+0.1733102i  0.10880996-0.23380323i  0.10880996+0.23380323i
##                [,8]           [,9]
##  [1,]  0.4650317+0i  0.41772770+0i
##  [2,]  0.1209101+0i  0.31995779+0i
##  [3,] -0.5739529+0i -0.07397327+0i
##  [4,] -0.4201833+0i  0.33078949+0i
##  [5,]  0.0556182+0i -0.17766658+0i
##  [6,] -0.2212109+0i  0.38603464+0i
##  [7,]  0.1037531+0i -0.50953623+0i
##  [8,]  0.4135614+0i -0.38174022+0i
##  [9,] -0.1712455+0i -0.14931822+0i
typeof(e_m$values)
## [1] "complex"
typeof(e_m$vectors)
## [1] "complex"

Question 2

create 4x4 matrix of random uniform values

my_matrix <- (runif(16))

my_matrix <- matrix(data=my_matrix, nrow=4)

create 100-element boolean vector

my_logical <- (runif(100))

my_logical <- my_logical > 0.5

create vector of randomized lower-case letters

my_letters <- letters[1:26]

my_letters <- sample(my_letters)

create a list with second element of all dfs

my_list <- list(my_matrix[2,2], my_logical[2], my_letters[2])

find type of elements

typeof(my_matrix[2,2])
## [1] "double"
typeof(my_logical[2])
## [1] "logical"
typeof(my_letters[2])
## [1] "character"

find type of dataframe

my_vector2 <- c(my_matrix[2,2], my_logical[2], my_letters[2])
typeof(my_vector2)
## [1] "character"

my_vector2 is a character vector

Question 3

create new dataframe with 26 random units and letters

my_units <- runif(26, 0, 10)

my_letters <- LETTERS[1:26]

my_letters <- sample(my_letters)

my_data_frame <- data.frame(my_units,my_letters,stringsAsFactors=FALSE)

sample four random rows and replace numerical values with NAs

my_data_frame[sample(nrow(my_data_frame), 4), 1] <- NA

find NA values

which(is.na(my_data_frame$my_units))
## [1]  2  9 22 26

sort my_letters by alphibetical order

my_data_frame[order(my_data_frame$my_letters), ]
##    my_units my_letters
## 20 8.237782          A
## 10 1.840868          B
## 2        NA          C
## 13 2.844540          D
## 8  9.976073          E
## 22       NA          F
## 12 2.392818          G
## 4  5.111087          H
## 9        NA          I
## 7  2.904782          J
## 15 7.463955          K
## 19 6.419678          L
## 18 1.524164          M
## 17 1.378740          N
## 16 8.946073          O
## 24 8.481346          P
## 5  8.917737          Q
## 3  4.972477          R
## 23 1.143212          S
## 14 4.336456          T
## 11 3.257820          U
## 21 3.910451          V
## 26       NA          W
## 25 1.410370          X
## 1  8.885381          Y
## 6  4.798870          Z
my_data_frame
##    my_units my_letters
## 1  8.885381          Y
## 2        NA          C
## 3  4.972477          R
## 4  5.111087          H
## 5  8.917737          Q
## 6  4.798870          Z
## 7  2.904782          J
## 8  9.976073          E
## 9        NA          I
## 10 1.840868          B
## 11 3.257820          U
## 12 2.392818          G
## 13 2.844540          D
## 14 4.336456          T
## 15 7.463955          K
## 16 8.946073          O
## 17 1.378740          N
## 18 1.524164          M
## 19 6.419678          L
## 20 8.237782          A
## 21 3.910451          V
## 22       NA          F
## 23 1.143212          S
## 24 8.481346          P
## 25 1.410370          X
## 26       NA          W

get rid of NAs and find mean of my_units

df_clean <- my_data_frame$my_units[!is.na(my_data_frame$my_units)]

mean(df_clean)
## [1] 4.961576