my_num_vector <- function(){
vec <- c(log(11,10), cos(pi/5), exp(pi/3), (1173%%7)/19)
return(vec)
}
my_num_vector()
## [1] 1.0413927 0.8090170 2.8496539 0.2105263
minVec<-c(3,1,12,2,4)
minVec[length(minVec)]
## [1] 4
len <- length (minVec)
fl<-minVec[(len-4)]*minVec[length(minVec)]
print(fl)
## [1] 12
minVec1<-c(3,1,12)
minVec1[length(minVec1)]
## [1] 12
lent <- length (minVec1)
fl1<-minVec1[(lent-2)]*minVec1[length(minVec1)]
print(fl1)
## [1] 36
a<-c(3,1,12,2,4)
b<-c(1,2,3,4,5)
orth_scalar_prod <- function (x,y){
x<-a
y<-b
z<-sum(x*y)
return(z)
}
orth_scalar_prod(a,b)
## [1] 69
x <- "I am your father."
lukes_father <- function (x){
if (is.name(x))
x<-as.character(x)
return(x)
}
cat(lukes_father("Luke,"), x)
## Luke, I am your father.
cat(lukes_father("Leia,"), x)
## Leia, I am your father.
a<-c(2, 9, 2, 4, 102)
b<-4
filter_my_vector <- function (x,y){
x<-a
y<-b
z<-ifelse(x>=y, "NA", x)
return(z)
}
filter_my_vector (a,b)
## [1] "2" "NA" "2" "NA" "NA"
my_magic_matrix<-c(4,9,2,3,5,7,8,1,6)
my_magic_matrix<-matrix(my_magic_matrix, nrow=3)
new_mat<-cbind(my_magic_matrix,my_magic_matrix)
calculate_elements <- function(x){
if (is.data.frame(x))
x <- as.matrix(x)
leg<-length(x)
return(leg)
}
calculate_elements(my_magic_matrix)
## [1] 9
calculate_elements(new_mat)
## [1] 18
x <- matrix(data = 1:9, nrow = 3, ncol = 3)
i<-x[1,]
row_to_zero <- function(x){
x[1,]<-0
return(x)
}
row_to_zero(x)
## [,1] [,2] [,3]
## [1,] 0 0 0
## [2,] 2 5 8
## [3,] 3 6 9
A <- matrix(data = 1:9, nrow = 3, ncol = 3)
add_elements_to_matrix <- function(x,j,i){
Anew <- matrix(data=x, ncol=j,nrow=i)
y<-rbind(A, Anew)
return(y)
}
add_elements_to_matrix(x = 10, j = 3, i=3)
## [,1] [,2] [,3]
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9
## [4,] 10 10 10
## [5,] 10 10 10
## [6,] 10 10 10
#For some reason I cannot understand, it does not add 3 more rows with number 10
my_magic_list <- function() {
x <- list(info="my own list",my_num_vector(),my_magic_matrix)
return(x)
}
my_magic_list()
## $info
## [1] "my own list"
##
## [[2]]
## [1] 1.0413927 0.8090170 2.8496539 0.2105263
##
## [[3]]
## [,1] [,2] [,3]
## [1,] 4 3 8
## [2,] 9 5 1
## [3,] 2 7 6
change_info <- function() {
a_list <- my_magic_list()
x <- a_list
x[[1]] <- "Some new info"
return(x)
}
change_info()
## $info
## [1] "Some new info"
##
## [[2]]
## [1] 1.0413927 0.8090170 2.8496539 0.2105263
##
## [[3]]
## [,1] [,2] [,3]
## [1,] 4 3 8
## [2,] 9 5 1
## [3,] 2 7 6
sum_numeric_part <- function() {
a_list <- as.vector(my_magic_list())
x <- length(a_list)
return(x)
}
sum_numeric_part()
## [1] 3
my_magic_list <- function() {
x <- list(info="my own list",my_num_vector(),my_magic_matrix, note = "This is a magic list!")
return(x)
}
my_magic_list()
## $info
## [1] "my own list"
##
## [[2]]
## [1] 1.0413927 0.8090170 2.8496539 0.2105263
##
## [[3]]
## [,1] [,2] [,3]
## [1,] 4 3 8
## [2,] 9 5 1
## [3,] 2 7 6
##
## $note
## [1] "This is a magic list!"
my_data.frame <- function() {
id<- c(1,2,3)
name<-c("John","Lisa","Azra")
income<-c(7.30,0.00,15.21)
rich<-c("FALSE","FALSE",TRUE)
x <-data.frame(id,name,income,rich)
return(x)
}
my_data.frame()
## id name income rich
## 1 1 John 7.30 FALSE
## 2 2 Lisa 0.00 FALSE
## 3 3 Azra 15.21 TRUE
sort_head <- function() {
data(iris)
x<- head(iris[order(iris$Petal.Length, decreasing = TRUE),],5)
return(x)
}
sort_head()
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 119 7.7 2.6 6.9 2.3 virginica
## 118 7.7 3.8 6.7 2.2 virginica
## 123 7.7 2.8 6.7 2.0 virginica
## 106 7.6 3.0 6.6 2.1 virginica
## 132 7.9 3.8 6.4 2.0 virginica
add_median_variable <- function(x,y) {
data(faithful)
dtf <- data.frame(faithful)
y<-median(faithful$eruptions)
dtf$compared_to_median <- ifelse(dtf$eruptions>y, "Greater", "Smaller")
x<-dtf
return(x)
}
add_median_variable(faithful, median)
## eruptions waiting compared_to_median
## 1 3.600 79 Smaller
## 2 1.800 54 Smaller
## 3 3.333 74 Smaller
## 4 2.283 62 Smaller
## 5 4.533 85 Greater
## 6 2.883 55 Smaller
## 7 4.700 88 Greater
## 8 3.600 85 Smaller
## 9 1.950 51 Smaller
## 10 4.350 85 Greater
## 11 1.833 54 Smaller
## 12 3.917 84 Smaller
## 13 4.200 78 Greater
## 14 1.750 47 Smaller
## 15 4.700 83 Greater
## 16 2.167 52 Smaller
## 17 1.750 62 Smaller
## 18 4.800 84 Greater
## 19 1.600 52 Smaller
## 20 4.250 79 Greater
## 21 1.800 51 Smaller
## 22 1.750 47 Smaller
## 23 3.450 78 Smaller
## 24 3.067 69 Smaller
## 25 4.533 74 Greater
## 26 3.600 83 Smaller
## 27 1.967 55 Smaller
## 28 4.083 76 Greater
## 29 3.850 78 Smaller
## 30 4.433 79 Greater
## 31 4.300 73 Greater
## 32 4.467 77 Greater
## 33 3.367 66 Smaller
## 34 4.033 80 Greater
## 35 3.833 74 Smaller
## 36 2.017 52 Smaller
## 37 1.867 48 Smaller
## 38 4.833 80 Greater
## 39 1.833 59 Smaller
## 40 4.783 90 Greater
## 41 4.350 80 Greater
## 42 1.883 58 Smaller
## 43 4.567 84 Greater
## 44 1.750 58 Smaller
## 45 4.533 73 Greater
## 46 3.317 83 Smaller
## 47 3.833 64 Smaller
## 48 2.100 53 Smaller
## 49 4.633 82 Greater
## 50 2.000 59 Smaller
## 51 4.800 75 Greater
## 52 4.716 90 Greater
## 53 1.833 54 Smaller
## 54 4.833 80 Greater
## 55 1.733 54 Smaller
## 56 4.883 83 Greater
## 57 3.717 71 Smaller
## 58 1.667 64 Smaller
## 59 4.567 77 Greater
## 60 4.317 81 Greater
## 61 2.233 59 Smaller
## 62 4.500 84 Greater
## 63 1.750 48 Smaller
## 64 4.800 82 Greater
## 65 1.817 60 Smaller
## 66 4.400 92 Greater
## 67 4.167 78 Greater
## 68 4.700 78 Greater
## 69 2.067 65 Smaller
## 70 4.700 73 Greater
## 71 4.033 82 Greater
## 72 1.967 56 Smaller
## 73 4.500 79 Greater
## 74 4.000 71 Smaller
## 75 1.983 62 Smaller
## 76 5.067 76 Greater
## 77 2.017 60 Smaller
## 78 4.567 78 Greater
## 79 3.883 76 Smaller
## 80 3.600 83 Smaller
## 81 4.133 75 Greater
## 82 4.333 82 Greater
## 83 4.100 70 Greater
## 84 2.633 65 Smaller
## 85 4.067 73 Greater
## 86 4.933 88 Greater
## 87 3.950 76 Smaller
## 88 4.517 80 Greater
## 89 2.167 48 Smaller
## 90 4.000 86 Smaller
## 91 2.200 60 Smaller
## 92 4.333 90 Greater
## 93 1.867 50 Smaller
## 94 4.817 78 Greater
## 95 1.833 63 Smaller
## 96 4.300 72 Greater
## 97 4.667 84 Greater
## 98 3.750 75 Smaller
## 99 1.867 51 Smaller
## 100 4.900 82 Greater
## 101 2.483 62 Smaller
## 102 4.367 88 Greater
## 103 2.100 49 Smaller
## 104 4.500 83 Greater
## 105 4.050 81 Greater
## 106 1.867 47 Smaller
## 107 4.700 84 Greater
## 108 1.783 52 Smaller
## 109 4.850 86 Greater
## 110 3.683 81 Smaller
## 111 4.733 75 Greater
## 112 2.300 59 Smaller
## 113 4.900 89 Greater
## 114 4.417 79 Greater
## 115 1.700 59 Smaller
## 116 4.633 81 Greater
## 117 2.317 50 Smaller
## 118 4.600 85 Greater
## 119 1.817 59 Smaller
## 120 4.417 87 Greater
## 121 2.617 53 Smaller
## 122 4.067 69 Greater
## 123 4.250 77 Greater
## 124 1.967 56 Smaller
## 125 4.600 88 Greater
## 126 3.767 81 Smaller
## 127 1.917 45 Smaller
## 128 4.500 82 Greater
## 129 2.267 55 Smaller
## 130 4.650 90 Greater
## 131 1.867 45 Smaller
## 132 4.167 83 Greater
## 133 2.800 56 Smaller
## 134 4.333 89 Greater
## 135 1.833 46 Smaller
## 136 4.383 82 Greater
## 137 1.883 51 Smaller
## 138 4.933 86 Greater
## 139 2.033 53 Smaller
## 140 3.733 79 Smaller
## 141 4.233 81 Greater
## 142 2.233 60 Smaller
## 143 4.533 82 Greater
## 144 4.817 77 Greater
## 145 4.333 76 Greater
## 146 1.983 59 Smaller
## 147 4.633 80 Greater
## 148 2.017 49 Smaller
## 149 5.100 96 Greater
## 150 1.800 53 Smaller
## 151 5.033 77 Greater
## 152 4.000 77 Smaller
## 153 2.400 65 Smaller
## 154 4.600 81 Greater
## 155 3.567 71 Smaller
## 156 4.000 70 Smaller
## 157 4.500 81 Greater
## 158 4.083 93 Greater
## 159 1.800 53 Smaller
## 160 3.967 89 Smaller
## 161 2.200 45 Smaller
## 162 4.150 86 Greater
## 163 2.000 58 Smaller
## 164 3.833 78 Smaller
## 165 3.500 66 Smaller
## 166 4.583 76 Greater
## 167 2.367 63 Smaller
## 168 5.000 88 Greater
## 169 1.933 52 Smaller
## 170 4.617 93 Greater
## 171 1.917 49 Smaller
## 172 2.083 57 Smaller
## 173 4.583 77 Greater
## 174 3.333 68 Smaller
## 175 4.167 81 Greater
## 176 4.333 81 Greater
## 177 4.500 73 Greater
## 178 2.417 50 Smaller
## 179 4.000 85 Smaller
## 180 4.167 74 Greater
## 181 1.883 55 Smaller
## 182 4.583 77 Greater
## 183 4.250 83 Greater
## 184 3.767 83 Smaller
## 185 2.033 51 Smaller
## 186 4.433 78 Greater
## 187 4.083 84 Greater
## 188 1.833 46 Smaller
## 189 4.417 83 Greater
## 190 2.183 55 Smaller
## 191 4.800 81 Greater
## 192 1.833 57 Smaller
## 193 4.800 76 Greater
## 194 4.100 84 Greater
## 195 3.966 77 Smaller
## 196 4.233 81 Greater
## 197 3.500 87 Smaller
## 198 4.366 77 Greater
## 199 2.250 51 Smaller
## 200 4.667 78 Greater
## 201 2.100 60 Smaller
## 202 4.350 82 Greater
## 203 4.133 91 Greater
## 204 1.867 53 Smaller
## 205 4.600 78 Greater
## 206 1.783 46 Smaller
## 207 4.367 77 Greater
## 208 3.850 84 Smaller
## 209 1.933 49 Smaller
## 210 4.500 83 Greater
## 211 2.383 71 Smaller
## 212 4.700 80 Greater
## 213 1.867 49 Smaller
## 214 3.833 75 Smaller
## 215 3.417 64 Smaller
## 216 4.233 76 Greater
## 217 2.400 53 Smaller
## 218 4.800 94 Greater
## 219 2.000 55 Smaller
## 220 4.150 76 Greater
## 221 1.867 50 Smaller
## 222 4.267 82 Greater
## 223 1.750 54 Smaller
## 224 4.483 75 Greater
## 225 4.000 78 Smaller
## 226 4.117 79 Greater
## 227 4.083 78 Greater
## 228 4.267 78 Greater
## 229 3.917 70 Smaller
## 230 4.550 79 Greater
## 231 4.083 70 Greater
## 232 2.417 54 Smaller
## 233 4.183 86 Greater
## 234 2.217 50 Smaller
## 235 4.450 90 Greater
## 236 1.883 54 Smaller
## 237 1.850 54 Smaller
## 238 4.283 77 Greater
## 239 3.950 79 Smaller
## 240 2.333 64 Smaller
## 241 4.150 75 Greater
## 242 2.350 47 Smaller
## 243 4.933 86 Greater
## 244 2.900 63 Smaller
## 245 4.583 85 Greater
## 246 3.833 82 Smaller
## 247 2.083 57 Smaller
## 248 4.367 82 Greater
## 249 2.133 67 Smaller
## 250 4.350 74 Greater
## 251 2.200 54 Smaller
## 252 4.450 83 Greater
## 253 3.567 73 Smaller
## 254 4.500 73 Greater
## 255 4.150 88 Greater
## 256 3.817 80 Smaller
## 257 3.917 71 Smaller
## 258 4.450 83 Greater
## 259 2.000 56 Smaller
## 260 4.283 79 Greater
## 261 4.767 78 Greater
## 262 4.533 84 Greater
## 263 1.850 58 Smaller
## 264 4.250 83 Greater
## 265 1.983 43 Smaller
## 266 2.250 60 Smaller
## 267 4.750 75 Greater
## 268 4.117 81 Greater
## 269 2.150 46 Smaller
## 270 4.417 90 Greater
## 271 1.817 46 Smaller
## 272 4.467 74 Greater
X <- as.matrix(data.frame(c(5,2,3),c(4,-3,7),c(4,1,2)))
sum(diag(X))
## [1] 4
matrix_trace <- function(X) {
n <- dim(X)[1] # get dimension of matrix
tr <- 0 # initialize trace value
# Loop over the diagonal elements of the supplied matrix and add the element to tr
for (k in 1:n) {
l <- X[k,k]
tr <- tr + l
}
return(tr[[1]])
}
matrix_trace (X)
## [1] 4
fast_stock_analysis <- function(x,y) {
setwd("/Users/thsofia/Downloads")
file.name <- "AppleTest.csv"
x <- file.name
data <- read.csv(file.name, stringsAsFactors = default.stringsAsFactors())
data[1:10,]
total_spread <- max(data$High)-min(data$Low)
mean_final <-mean(data$Adj.Close)
final_up <- ifelse(data[1,8]<data[10,8], "TRUE", "FALSE")
dates <- as.character(data[1,2]:data[10,2])
y <- list(total_spread=total_spread,mean_final=mean_final,final_up=final_up, dates=dates)
return(y)
}
fast_stock_analysis()
## $total_spread
## [1] 175.12
##
## $mean_final
## [1] 352.3721
##
## $final_up
## [1] "TRUE"
##
## $dates
## [1] "2012-01-24:2012-01-10"
leap_year <- function(date) {
if (is.numeric(date)) {
year <- date
} else {
year <- year(date)
}
(year %% 4 == 0) & ((year %% 100 != 0) | (year %% 400 == 0))
}
year <- c("1900", "1984", "1997", "2000", "2001")
my_test_years1 <- c(leap_year(1900), leap_year(1984), leap_year(1997), leap_year(2000), leap_year(2001))
myresult<-data.frame(year,my_test_years1)
print(myresult)
## year my_test_years1
## 1 1900 FALSE
## 2 1984 TRUE
## 3 1997 FALSE
## 4 2000 TRUE
## 5 2001 FALSE