##rpus web: https://rpubs.com/swtyuo56322p/639070

0. Environment clear and working directory setup

x = 1
x
## [1] 1
y <- 2
rm(list = ls())
x1 = 1
x2 = 2
rm(x1)
rm(x2)
s1 <- seq(1, 10, by = 1)
write.csv(s1, file = './seq/s1.csv')
rm(list = ls())

getwd() #s <- read.csv(file = ‘s1.csv’)

setwd(“./seq”) getwd()

s <- read.csv(file = ‘s1.csv’)

1. Basic operation with number

3 * (2 + 5) / 5
## [1] 4.2
x_double <- 3 * (2 + 5) / 5 # 4.2
#View(x_double)
str(x_double) # num 4.2
##  num 4.2
class(x_double) # numeric
## [1] "numeric"
mode(x_double) # numeric
## [1] "numeric"
storage.mode(x_double) # double
## [1] "double"
typeof(x_double) # "double"
## [1] "double"
?integer
#Which one should I use to create an integer variable?
#integer(length = 2)
#as.integer(2)
#is.integer(2)
#is.integer(as.integer(2))
x_integer <- as.integer(1.1)
x_integer <- as.integer(1.7) 
x_integer <- as.integer(1.99999)
str(x_integer) # int 1
##  int 1
typeof(x_integer) # "integer"
## [1] "integer"

2. Basic operation with string

x_string <- "Hello"
str(x_string) # chr "Hello"
##  chr "Hello"
typeof(x_string) # "character"
## [1] "character"
print("Hello")
## [1] "Hello"
print(x_string)
## [1] "Hello"
x_string2 <- "World!"
#print(x_string + x_string2)
#print(x_string, x_string2)
print(paste(x_string, x_string2)) #print "Hello World!" since defalut sep = " "
## [1] "Hello World!"
print(paste0(x_string, x_string2)) #print "HelloWorld!"
## [1] "HelloWorld!"
print(paste(x_string, x_string2, x_string, x_string2)) #print "Hello World!" since defalut sep = " "
## [1] "Hello World! Hello World!"
print(paste(x_string, x_string2, sep = "-")) #print "Hello-World!"
## [1] "Hello-World!"
paste(x_string, x_string2, collapse = ", ")
## [1] "Hello World!"
paste(c(x_string, x_string2), collapse = ", ")
## [1] "Hello, World!"
paste(c("white", "blue"), "car")
## [1] "white car" "blue car"
paste(c("white", "blue"), "car", collapse = ", and ")
## [1] "white car, and blue car"
?paste
strsplit("apple,banana,cherry+durian", ",")
## [[1]]
## [1] "apple"         "banana"        "cherry+durian"
x_split = strsplit("apple,banana,cherry+durian", "+")
x_split[[1]]
##  [1] "a" "p" "p" "l" "e" "," "b" "a" "n" "a" "n" "a" "," "c" "h" "e" "r" "r" "y"
## [20] "+" "d" "u" "r" "i" "a" "n"
length(x_split[[1]])
## [1] 26
x_split_2 = strsplit("apple,banana,cherry+durian", "+", fixed = TRUE)
x_split_2[[1]]
## [1] "apple,banana,cherry" "durian"
length(x_split_2[[1]])
## [1] 2
x_split_2[[1]][1]
## [1] "apple,banana,cherry"
x_split_2[[1]][2]
## [1] "durian"
x_split_3 = Map(c, strsplit(x_split_2[[1]][1], ",", fixed = TRUE), x_split_2[[1]][2])
x_split_3
## [[1]]
## [1] "apple"  "banana" "cherry" "durian"

3. Small dataset example

data() #show the build-in dataset

#some basic data operations with cars dataset 
?cars
#View(cars)
nrow(cars)
## [1] 50
ncol(cars)
## [1] 2
dim(cars) #50 2
## [1] 50  2
head(cars)
##   speed dist
## 1     4    2
## 2     4   10
## 3     7    4
## 4     7   22
## 5     8   16
## 6     9   10
head(cars, 5)
##   speed dist
## 1     4    2
## 2     4   10
## 3     7    4
## 4     7   22
## 5     8   16
tail(cars, 10)
##    speed dist
## 41    20   52
## 42    20   56
## 43    20   64
## 44    22   66
## 45    23   54
## 46    24   70
## 47    24   92
## 48    24   93
## 49    24  120
## 50    25   85
str(cars) 
## 'data.frame':    50 obs. of  2 variables:
##  $ speed: num  4 4 7 7 8 9 10 10 10 11 ...
##  $ dist : num  2 10 4 22 16 10 18 26 34 17 ...
summary(cars)
##      speed           dist       
##  Min.   : 4.0   Min.   :  2.00  
##  1st Qu.:12.0   1st Qu.: 26.00  
##  Median :15.0   Median : 36.00  
##  Mean   :15.4   Mean   : 42.98  
##  3rd Qu.:19.0   3rd Qu.: 56.00  
##  Max.   :25.0   Max.   :120.00
cars[1]
##    speed
## 1      4
## 2      4
## 3      7
## 4      7
## 5      8
## 6      9
## 7     10
## 8     10
## 9     10
## 10    11
## 11    11
## 12    12
## 13    12
## 14    12
## 15    12
## 16    13
## 17    13
## 18    13
## 19    13
## 20    14
## 21    14
## 22    14
## 23    14
## 24    15
## 25    15
## 26    15
## 27    16
## 28    16
## 29    17
## 30    17
## 31    17
## 32    18
## 33    18
## 34    18
## 35    18
## 36    19
## 37    19
## 38    19
## 39    20
## 40    20
## 41    20
## 42    20
## 43    20
## 44    22
## 45    23
## 46    24
## 47    24
## 48    24
## 49    24
## 50    25
cars[2]
##    dist
## 1     2
## 2    10
## 3     4
## 4    22
## 5    16
## 6    10
## 7    18
## 8    26
## 9    34
## 10   17
## 11   28
## 12   14
## 13   20
## 14   24
## 15   28
## 16   26
## 17   34
## 18   34
## 19   46
## 20   26
## 21   36
## 22   60
## 23   80
## 24   20
## 25   26
## 26   54
## 27   32
## 28   40
## 29   32
## 30   40
## 31   50
## 32   42
## 33   56
## 34   76
## 35   84
## 36   36
## 37   46
## 38   68
## 39   32
## 40   48
## 41   52
## 42   56
## 43   64
## 44   66
## 45   54
## 46   70
## 47   92
## 48   93
## 49  120
## 50   85
names(cars)
## [1] "speed" "dist"
row.names(cars)
##  [1] "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9"  "10" "11" "12" "13" "14" "15"
## [16] "16" "17" "18" "19" "20" "21" "22" "23" "24" "25" "26" "27" "28" "29" "30"
## [31] "31" "32" "33" "34" "35" "36" "37" "38" "39" "40" "41" "42" "43" "44" "45"
## [46] "46" "47" "48" "49" "50"
row.names(cars) <- c(paste0(seq(1, 50, 1), "_car"))
row.names(cars)
##  [1] "1_car"  "2_car"  "3_car"  "4_car"  "5_car"  "6_car"  "7_car"  "8_car" 
##  [9] "9_car"  "10_car" "11_car" "12_car" "13_car" "14_car" "15_car" "16_car"
## [17] "17_car" "18_car" "19_car" "20_car" "21_car" "22_car" "23_car" "24_car"
## [25] "25_car" "26_car" "27_car" "28_car" "29_car" "30_car" "31_car" "32_car"
## [33] "33_car" "34_car" "35_car" "36_car" "37_car" "38_car" "39_car" "40_car"
## [41] "41_car" "42_car" "43_car" "44_car" "45_car" "46_car" "47_car" "48_car"
## [49] "49_car" "50_car"
cars[2]
##        dist
## 1_car     2
## 2_car    10
## 3_car     4
## 4_car    22
## 5_car    16
## 6_car    10
## 7_car    18
## 8_car    26
## 9_car    34
## 10_car   17
## 11_car   28
## 12_car   14
## 13_car   20
## 14_car   24
## 15_car   28
## 16_car   26
## 17_car   34
## 18_car   34
## 19_car   46
## 20_car   26
## 21_car   36
## 22_car   60
## 23_car   80
## 24_car   20
## 25_car   26
## 26_car   54
## 27_car   32
## 28_car   40
## 29_car   32
## 30_car   40
## 31_car   50
## 32_car   42
## 33_car   56
## 34_car   76
## 35_car   84
## 36_car   36
## 37_car   46
## 38_car   68
## 39_car   32
## 40_car   48
## 41_car   52
## 42_car   56
## 43_car   64
## 44_car   66
## 45_car   54
## 46_car   70
## 47_car   92
## 48_car   93
## 49_car  120
## 50_car   85
cars[1,]
##       speed dist
## 1_car     4    2
cars["1_car", ]
##       speed dist
## 1_car     4    2
cars[1, 1]
## [1] 4
cars["1_car", "speed"]
## [1] 4
cars[, 1]
##  [1]  4  4  7  7  8  9 10 10 10 11 11 12 12 12 12 13 13 13 13 14 14 14 14 15 15
## [26] 15 16 16 17 17 17 18 18 18 18 19 19 19 20 20 20 20 20 22 23 24 24 24 24 25
# show the variable distribution with histogram
hist(cars$speed)

hist(cars$speed[1:10])

hist(cars$dist)

# show the variable distribution with density plot
density(cars$speed)
## 
## Call:
##  density.default(x = cars$speed)
## 
## Data: cars$speed (50 obs.);  Bandwidth 'bw' = 2.15
## 
##        x                y            
##  Min.   :-2.450   Min.   :8.082e-05  
##  1st Qu.: 6.025   1st Qu.:5.926e-03  
##  Median :14.500   Median :2.572e-02  
##  Mean   :14.500   Mean   :2.947e-02  
##  3rd Qu.:22.975   3rd Qu.:5.447e-02  
##  Max.   :31.450   Max.   :6.580e-02
plot(density(cars$speed))

# X-Y Plotting
plot(cars)

plot(cars, type = "l")