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 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