# 1) Do a simple calculation:
2 + 2
[1] 4
# 2) Output some text with print() function and other statements
print("Hello")
[1] "Hello"
"Hello"
[1] "Hello"
'Hello'
[1] "Hello"
# 3) Creating two variables and displaying their sum
num1 <- 5
num2 <- 10
num1 + num2
[1] 15
# 4) Assign the same value to multiple variables in one line
var1 <- var2 <- var3 <- "Orange"
var1
[1] "Orange"
var2
[1] "Orange"
var3
[1] "Orange"
# 5) Add a variable to another variable
text1 <- "R is"
text2 <- "awesome"
paste(text1, text2)
[1] "R is awesome"
# 6) Changing the type of a variable
my_var <- 30
my_var <- "Sally"
my_var
[1] "Sally"
# 7) Check data types
x <- 10.5
class(x)
[1] "numeric"
y <- 1000L
class(y)
[1] "integer"
z <- 9i + 3
class(z)
[1] "complex"
a <- "R is exciting"
class(a)
[1] "character"
b <- TRUE
class(b)
[1] "logical"
# 8) Create a matrix
thismatrix <- matrix(c(1,2,3,4,5,6), nrow=3, ncol=2)
thismatrix
     [,1] [,2]
[1,]    1    4
[2,]    2    5
[3,]    3    6
# 9) Access matrix items
thismatrix <- matrix(c("apple", "banana", "cherry", "orange"), nrow=2, ncol=2)
thismatrix[1,2]
[1] "cherry"
# 10) Matrix length
length(thismatrix)
[1] 4
# 11) Numeric data type
x <- 10.5
y <- 55
x
[1] 10.5
y
[1] 55
class(x)
[1] "numeric"
class(y)
[1] "numeric"
# 12) Integer type
c <- 1000L
d <- 55L
c
[1] 1000
d
[1] 55
class(c)
[1] "integer"
class(d)
[1] "integer"
# 13) Complex number
e <- 3+5i
f <- 5i
e
[1] 3+5i
f
[1] 0+5i
class(e)
[1] "complex"
class(f)
[1] "complex"
# 14) Square root
sqrt(16)
[1] 4
# 15) Max and Min
max(5, 10, 15)
[1] 15
min(5, 10, 15)
[1] 5
# 16) String length
str <- "Hello World!"
nchar(str)
[1] 12
# 17) Concatenate strings
str1 <- "Hello"
str2 <- "World"
paste(str1, str2)
[1] "Hello World"
# 18) Compare variables
a <- 10
b <- 9
a > b
[1] TRUE
# 19) Exponent operator
2^5
[1] 32
# 20) Compare values
10 > 9
[1] TRUE
10 == 9
[1] FALSE
10 < 9
[1] FALSE
# 21) Modulus operator
5 %% 2
[1] 1
# 22) If else statement
a <- 33
b <- 200
if (b > a) {
  print("b is greater that a")
}
[1] "b is greater that a"
# 23) While loop
i <- 1
while (i < 6) {
  print(i)
  i <- i + 1
}
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
# 24) For loop in list
fruits <- list("apple", "banana", "cherry")
for (x in fruits) {
  print(x)
}
[1] "apple"
[1] "banana"
[1] "cherry"
# 25) Nested loop
adj <- list("red", "big", "tasty")
fruits <- list("apple", "banana", "cherry")
for (x in adj) {
  for (y in fruits) {
    print(paste(x, y))
  }
}
[1] "red apple"
[1] "red banana"
[1] "red cherry"
[1] "big apple"
[1] "big banana"
[1] "big cherry"
[1] "tasty apple"
[1] "tasty banana"
[1] "tasty cherry"
# 26) Call a function
my_function <- function() {
  print("Hello World!")
}
my_function()
[1] "Hello World!"
# 27) Function with return value
my_function <- function(x) {
  return(5 * x)
}
print(my_function(3))
[1] 15
print(my_function(5))
[1] 25
print(my_function(9))
[1] 45
# 28) Nested function
nested_function <- function(x, y) {
  a <- x + y
  return(a)
}
nested_function(nested_function(2,2), nested_function(3,3))
[1] 10
# 29) Create a vector
numbers <- c(1, 2, 3)
numbers
[1] 1 2 3
# 30) Sort a vector
fruits <- c("banana", "apple", "orange", "mango", "lemon")
numbers <- c(13, 3, 5, 7, 20, 2)
sort(fruits)
[1] "apple"  "banana" "lemon"  "mango"  "orange"
sort(numbers)
[1]  2  3  5  7 13 20
# 31) Vector length
fruits <- c("banana", "apple", "orange")
length(fruits)
[1] 3
# 32) Create a list
thislist <- list("apple", "banana", "cherry")
thislist
[[1]]
[1] "apple"

[[2]]
[1] "banana"

[[3]]
[1] "cherry"
# 33) List length
length(thislist)
[1] 3
# 34) Create a data frame
data_frame <- data.frame(
  training = c("strength", "stamina", "other"),
  pulse = c(100, 150, 120),
  duration = c(60, 30, 45)
)
data_frame

# 35) Create arrays
thisarray <- c(1:24)
thisarray
 [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
multiarray <- array(thisarray, dim = c(4,3,2))
multiarray
, , 1

     [,1] [,2] [,3]
[1,]    1    5    9
[2,]    2    6   10
[3,]    3    7   11
[4,]    4    8   12

, , 2

     [,1] [,2] [,3]
[1,]   13   17   21
[2,]   14   18   22
[3,]   15   19   23
[4,]   16   20   24
# 36) Plot a point
plot(1, 3)


# 37) Plot two points
plot(c(1, 8), c(3, 10))

LS0tDQp0aXRsZTogIkFzc2lnbm1lbnQgMDEgLSBSIE5vdGVib29rIg0KYXV0aG9yOiAiSGFzYW4gTWQgS2hhbGlkIChNMjRXMDM5MSkiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpgYGB7cn0NCjIgKyAyDQoNCnByaW50KCJIZWxsbyIpDQoiSGVsbG8iDQonSGVsbG8nDQoNCm51bTEgPC0gNQ0KbnVtMiA8LSAxMA0KbnVtMSArIG51bTINCg0KdmFyMSA8LSB2YXIyIDwtIHZhcjMgPC0gIk9yYW5nZSINCnZhcjENCnZhcjINCnZhcjMNCg0KdGV4dDEgPC0gIlIgaXMiDQp0ZXh0MiA8LSAiYXdlc29tZSINCnBhc3RlKHRleHQxLCB0ZXh0MikNCg0KbXlfdmFyIDwtIDMwDQpteV92YXIgPC0gIlNhbGx5Ig0KbXlfdmFyDQoNCnggPC0gMTAuNQ0KY2xhc3MoeCkNCnkgPC0gMTAwMEwNCmNsYXNzKHkpDQp6IDwtIDlpICsgMw0KY2xhc3MoeikNCmEgPC0gIlIgaXMgZXhjaXRpbmciDQpjbGFzcyhhKQ0KYiA8LSBUUlVFDQpjbGFzcyhiKQ0KDQp0aGlzbWF0cml4IDwtIG1hdHJpeChjKDEsMiwzLDQsNSw2KSwgbnJvdz0zLCBuY29sPTIpDQp0aGlzbWF0cml4DQoNCnRoaXNtYXRyaXggPC0gbWF0cml4KGMoImFwcGxlIiwgImJhbmFuYSIsICJjaGVycnkiLCAib3JhbmdlIiksIG5yb3c9MiwgbmNvbD0yKQ0KdGhpc21hdHJpeFsxLDJdDQoNCmxlbmd0aCh0aGlzbWF0cml4KQ0KDQp4IDwtIDEwLjUNCnkgPC0gNTUNCngNCnkNCmNsYXNzKHgpDQpjbGFzcyh5KQ0KDQpjIDwtIDEwMDBMDQpkIDwtIDU1TA0KYw0KZA0KY2xhc3MoYykNCmNsYXNzKGQpDQoNCmUgPC0gMys1aQ0KZiA8LSA1aQ0KZQ0KZg0KY2xhc3MoZSkNCmNsYXNzKGYpDQoNCnNxcnQoMTYpDQoNCm1heCg1LCAxMCwgMTUpDQptaW4oNSwgMTAsIDE1KQ0KDQpzdHIgPC0gIkhlbGxvIFdvcmxkISINCm5jaGFyKHN0cikNCg0Kc3RyMSA8LSAiSGVsbG8iDQpzdHIyIDwtICJXb3JsZCINCnBhc3RlKHN0cjEsIHN0cjIpDQoNCmEgPC0gMTANCmIgPC0gOQ0KYSA+IGINCg0KMl41DQoNCjEwID4gOQ0KMTAgPT0gOQ0KMTAgPCA5DQoNCjUgJSUgMg0KDQphIDwtIDMzDQpiIDwtIDIwMA0KaWYgKGIgPiBhKSB7DQogIHByaW50KCJiIGlzIGdyZWF0ZXIgdGhhdCBhIikNCn0NCg0KaSA8LSAxDQp3aGlsZSAoaSA8IDYpIHsNCiAgcHJpbnQoaSkNCiAgaSA8LSBpICsgMQ0KfQ0KDQpmcnVpdHMgPC0gbGlzdCgiYXBwbGUiLCAiYmFuYW5hIiwgImNoZXJyeSIpDQpmb3IgKHggaW4gZnJ1aXRzKSB7DQogIHByaW50KHgpDQp9DQoNCmFkaiA8LSBsaXN0KCJyZWQiLCAiYmlnIiwgInRhc3R5IikNCmZydWl0cyA8LSBsaXN0KCJhcHBsZSIsICJiYW5hbmEiLCAiY2hlcnJ5IikNCmZvciAoeCBpbiBhZGopIHsNCiAgZm9yICh5IGluIGZydWl0cykgew0KICAgIHByaW50KHBhc3RlKHgsIHkpKQ0KICB9DQp9DQoNCm15X2Z1bmN0aW9uIDwtIGZ1bmN0aW9uKCkgew0KICBwcmludCgiSGVsbG8gV29ybGQhIikNCn0NCm15X2Z1bmN0aW9uKCkNCg0KbXlfZnVuY3Rpb24gPC0gZnVuY3Rpb24oeCkgew0KICByZXR1cm4oNSAqIHgpDQp9DQpwcmludChteV9mdW5jdGlvbigzKSkNCnByaW50KG15X2Z1bmN0aW9uKDUpKQ0KcHJpbnQobXlfZnVuY3Rpb24oOSkpDQoNCm5lc3RlZF9mdW5jdGlvbiA8LSBmdW5jdGlvbih4LCB5KSB7DQogIGEgPC0geCArIHkNCiAgcmV0dXJuKGEpDQp9DQpuZXN0ZWRfZnVuY3Rpb24obmVzdGVkX2Z1bmN0aW9uKDIsMiksIG5lc3RlZF9mdW5jdGlvbigzLDMpKQ0KDQpudW1iZXJzIDwtIGMoMSwgMiwgMykNCm51bWJlcnMNCg0KZnJ1aXRzIDwtIGMoImJhbmFuYSIsICJhcHBsZSIsICJvcmFuZ2UiLCAibWFuZ28iLCAibGVtb24iKQ0KbnVtYmVycyA8LSBjKDEzLCAzLCA1LCA3LCAyMCwgMikNCnNvcnQoZnJ1aXRzKQ0Kc29ydChudW1iZXJzKQ0KDQpmcnVpdHMgPC0gYygiYmFuYW5hIiwgImFwcGxlIiwgIm9yYW5nZSIpDQpsZW5ndGgoZnJ1aXRzKQ0KDQp0aGlzbGlzdCA8LSBsaXN0KCJhcHBsZSIsICJiYW5hbmEiLCAiY2hlcnJ5IikNCnRoaXNsaXN0DQoNCmxlbmd0aCh0aGlzbGlzdCkNCg0KZGF0YV9mcmFtZSA8LSBkYXRhLmZyYW1lKA0KICB0cmFpbmluZyA9IGMoInN0cmVuZ3RoIiwgInN0YW1pbmEiLCAib3RoZXIiKSwNCiAgcHVsc2UgPSBjKDEwMCwgMTUwLCAxMjApLA0KICBkdXJhdGlvbiA9IGMoNjAsIDMwLCA0NSkNCikNCmRhdGFfZnJhbWUNCg0KdGhpc2FycmF5IDwtIGMoMToyNCkNCnRoaXNhcnJheQ0KbXVsdGlhcnJheSA8LSBhcnJheSh0aGlzYXJyYXksIGRpbSA9IGMoNCwzLDIpKQ0KbXVsdGlhcnJheQ0KDQpwbG90KDEsIDMpDQoNCnBsb3QoYygxLCA4KSwgYygzLCAxMCkpDQpgYGANCg==