x <- 1000  # 
typeof(x) # type in R is diffirent class() function
## [1] "double"
x <- 1 
print(x)
## [1] 1
class(x)
## [1] "numeric"
x <-c("n","m","w")
if(is.character(x)){print(x)} # if statement
## [1] "n" "m" "w"
if(is.integer(x)){print(x)} else {print("x is not integer")} # if else statement 
## [1] "x is not integer"
x <- 1000
class(x) # [1] "numeric"
## [1] "numeric"
typeof(x) # [1] "double"
## [1] "double"
x <- "toi la an"
class(x)
## [1] "character"
count <- 4
while (count < 11) {print(x) 
  count <-count+1  } 
## [1] "toi la an"
## [1] "toi la an"
## [1] "toi la an"
## [1] "toi la an"
## [1] "toi la an"
## [1] "toi la an"
## [1] "toi la an"
# neu dieu kien cua while con, thi countinue run
fruit <- c("cam","tao","luu")
for (i in fruit) {print(i)} # chua hieu lam, tim hieu them
## [1] "cam"
## [1] "tao"
## [1] "luu"
df <- mtcars # co san mtcars
df # view
##                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
## Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
## Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
df['mpg'] # xem cot of  bien mpg
##                      mpg
## Mazda RX4           21.0
## Mazda RX4 Wag       21.0
## Datsun 710          22.8
## Hornet 4 Drive      21.4
## Hornet Sportabout   18.7
## Valiant             18.1
## Duster 360          14.3
## Merc 240D           24.4
## Merc 230            22.8
## Merc 280            19.2
## Merc 280C           17.8
## Merc 450SE          16.4
## Merc 450SL          17.3
## Merc 450SLC         15.2
## Cadillac Fleetwood  10.4
## Lincoln Continental 10.4
## Chrysler Imperial   14.7
## Fiat 128            32.4
## Honda Civic         30.4
## Toyota Corolla      33.9
## Toyota Corona       21.5
## Dodge Challenger    15.5
## AMC Javelin         15.2
## Camaro Z28          13.3
## Pontiac Firebird    19.2
## Fiat X1-9           27.3
## Porsche 914-2       26.0
## Lotus Europa        30.4
## Ford Pantera L      15.8
## Ferrari Dino        19.7
## Maserati Bora       15.0
## Volvo 142E          21.4
df[df['mpg'] >=30,] # chua hieu dau ","
##                 mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Fiat 128       32.4   4 78.7  66 4.08 2.200 19.47  1  1    4    1
## Honda Civic    30.4   4 75.7  52 4.93 1.615 18.52  1  1    4    2
## Toyota Corolla 33.9   4 71.1  65 4.22 1.835 19.90  1  1    4    1
## Lotus Europa   30.4   4 95.1 113 3.77 1.513 16.90  1  1    5    2
dim(df) # xem bao nhieu hang, bao nhieu cot
## [1] 32 11
subset(df,mpg>30) # lay toan bo cot va hang nao co mpg > 30
##                 mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Fiat 128       32.4   4 78.7  66 4.08 2.200 19.47  1  1    4    1
## Honda Civic    30.4   4 75.7  52 4.93 1.615 18.52  1  1    4    2
## Toyota Corolla 33.9   4 71.1  65 4.22 1.835 19.90  1  1    4    1
## Lotus Europa   30.4   4 95.1 113 3.77 1.513 16.90  1  1    5    2
#class("mpg", data.frame(df)) # xem class cua "mpg" trong df <lenh sai>
class(df[,2]) # <lenh dung> xem class cua cot so 2 cua df 
## [1] "numeric"
print(df[1,1]) # in df hang 1, cot 1
## [1] 21
a <- df[,1] # lay a la numberic cot so 1 trong data frame df
df[(df["mpg"]>=20)& (df['hp']>=100) ] # dau 'mpg' = "mpg"
##  [1]  21.000  21.000  21.400  30.400  21.400   6.000   6.000   6.000   4.000
## [10]   4.000 160.000 160.000 258.000  95.100 121.000 110.000 110.000 110.000
## [19] 113.000 109.000   3.900   3.900   3.080   3.770   4.110   2.620   2.875
## [28]   3.215   1.513   2.780  16.460  17.020  19.440  16.900  18.600   0.000
## [37]   0.000   1.000   1.000   1.000   1.000   1.000   0.000   1.000   1.000
## [46]   4.000   4.000   3.000   5.000   4.000   4.000   4.000   1.000   2.000
## [55]   2.000
hot<-FALSE 
temp <- 49 # co nhieu loai sai <de y>
if(temp>50){hot<-TRUE} else {print(hot)}
## [1] FALSE
score <- 1 # gia trị thay đổi đc # co the test voi cac moc >100, 80-100, 50-80,30-50, >30
if(score >=80 & score<100){print("this is good score")
}else if(score<80&score>=50) {print("this is a normal score")
}else if(score<50&score>=30){print('nearly fail')
}else if(score<30){print('already fail')
}else if(score>100){print('dcmm dien ah')}
## [1] "already fail"