Professional Documents
Culture Documents
Ch1. R
R
%%
^ 3 ^ 2 9
%% 5 %% 3 2
9 %% 2 1()
> (5 + 5) / 2
[1] 5
>
> #
> 2^5
[1] 32
>
1
> #
> 28%%6
[1] 4
(1)
R 4
my_var 4
my_var <- 4
my_varR Console 4
> my_var
[1] 4
4 my_var 42
# x 42 x
> x <- 42
>
> # x
>x
[1] 42
>
(2)
5 my_apples
2
<- = R
<-
># 5 my_apples
> # my_apples
> my_apples
[1] 5
(3)
my_oranges 6
my_apples + my_oranges
<- my_fruit
> #
> # my_fruit
3
> my_fruit <- my_apples + my_oranges
>
R +
my_oranges ()
my_fruit
6 my_oranges "six"
R "six"
># my_apples 5
> # my_apples
> my_apples
[1] 5
>
R
4
R
4.5
TRUE or FALSE
... R """apple"
"123""$#@"
my_numeric <- 42 42
># 42 my_numeric
5 + "six"
class()
5
my_numeric
my_character my_logical
>#
> # my_numeric
> class(my_numeric)
[1] "numeric"
>
> # my_character
> class(my_character)
[1] "character"
>
> # my_logical
> class(my_logical)
[1] "logical"
Ch2. vector
(1)
># vegas
6
>
(2)
R c()
> # boolean_vector
(3)
poker_vector :
$140
7
$50
$20
$120
$240
roulette_vector :
$24
$50
$100
$350
$10
poker_vector roulette_vector
poker_vector roulette_vector
>#
> #
8
(1)
names()
some_vector
Name Profession
R Console some_vector
Name Profession
"John Doe" "poker player"
names(roulette_vector) roulette_vector
>#
> #
> # poker_vector
> # roulette_vector
9
(2)
roulette_vector
>#
> #
> # days_vector
(1)
10
R 2
c(1, 2, 3) + c(4, 5, 6)
c(1 + 4, 2 + 5, 3 + 6)
c(5, 7, 9)
a <- c(1, 2, 3)
b <- c(4, 5, 6)
c <- a + b
> # total_vector
> total_vector
[1] 5 7 9
>
11
(2)
roulette_vector poker_vector
2 total_daily
>#
> # total_daily
(3)
sum()
roulette_vector poker_vector
>#
12
> poker_vector <- c(140, -50, 20, -120, 240)
> roulette_vector <- c(-24, -50, 100, -350, 10)
> days_vector <- c("Monday", "Tuesday", "Wednesday", "Thursday", "Friday")
> names(poker_vector) <- days_vector
> names(roulette_vector) <- days_vector
>
> #
> #
> #
> # total_week
> total_week
[1] -84
>
...
( > )
>#
13
> poker_vector <- c(140, -50, 20, -120, 240)
> roulette_vector <- c(-24, -50, 100, -350, 10)
> days_vector <- c("Monday", "Tuesday", "Wednesday", "Thursday", "Friday")
> names(poker_vector) <- days_vector
> names(roulette_vector) <- days_vector
>
> #
> #
(1)
Margarita...
total_vector
R ...
poker_vector[1] poker_vector[2]...
1 0
poker_vector poker_vector[3]
>#
14
> names(poker_vector) <- days_vector
> names(roulette_vector) <- days_vector
>
> #
(2)
c(1, 5)
poker_vector[c(1, 5)]
c(2, 3, 4) poker_vector
>#
> #
(3)
c(2, 3, 4) poker_vector
c(2, 3, 4) 2:4
15
poker_vector[2:4] 2:4
2:5 roulette_vector
roulette_selection_vector
>#
> #
(4)
poker_vector["Monday"]
poker_vector "Monday"
poker_vector[c("Monday","Tuesday")]
16
mean(poker_start) poker_start
>#
> #
> # poker_start
> mean(poker_start)
[1] 36.66667
>
<
>
<=
>=
==
17
!=
TRUE FALSE
>#
> #
> # selection_vector
> selection_vector
Monday Tuesday Wednesday Thursday Friday
TRUE FALSE TRUE FALSE TRUE
>
18
selection_vector <- poker_vector > 0
selection_vector poker_vector
poker_vector[selection_vector]
R selection_vector TRUE
poker_vector[selection_vector] poker_vector
poker_winning_days
>#
> #
selection_vector
roulette_vector[selection_vector] roulette_vector
>#
19
> names(poker_vector) <- days_vector
> names(roulette_vector) <- days_vector
>
> #
> # roulette_vector
Ch3. matrix
()
matrix()
matrix()
1:9 c(1, 2, 3, 4, 5, 6, 7, 8, 9)
byrow
byrow = FALSE
nrow 3
3 1 9 byrow = TRUE
20
># 3 1:9
box_office
matrix() 3
box_office nrow = 3
21
matrix(box_office, nrow = ..., by_row = ...)
>#
> # box_office
> # star_wars_matrix
> # star_wars_matrix
> # region
> # titles
22
> rownames(star_wars_matrix) <- titles
>
> # star_wars_matrix
> star_wars_matrix
US non-US
A New Hope 460.998 314.4
The Empire Strikes Back 290.475 247.9
Return of the Jedi 309.306 165.8
R rowSums()
# star_wars_matrix
> #
big_matrix
23
> #
cbind() rbind()()
R ()
star_wars_matrix
star_wars_matrix2
R Console ls() 2
> star_wars_matrix
US non-US
A New Hope 461.0 314.4
The Empire Strikes Back 290.5 247.9
Return of the Jedi 309.3 165.8
> star_wars_matrix2
US non-US
The Phantom Menace 474.5 552.5
Attack of the Clones 310.7 338.7
Revenge of the Sith 380.3 468.5
>
> # 2
> all_wars_matrix
US non-US
A New Hope 461.0 314.4
The Empire Strikes Back 290.5 247.9
Return of the Jedi 309.3 165.8
The Phantom Menace 474.5 552.5
Attack of the Clones 310.7 338.7
Revenge of the Sith 380.3 468.5
>
all_wars_matrix all_wars_matrix
# all_wars_matrix
> all_wars_matrix
US non-US
A New Hope 461.0 314.4
The Empire Strikes Back 290.5 247.9
Return of the Jedi 309.3 165.8
The Phantom Menace 474.5 552.5
Attack of the Clones 310.7 338.7
Revenge of the Sith 380.3 468.5
>
> #
> # total_revenue_vector
> total_revenue_vector
25
US non-US
2226.3 2087.8
>
[ ] 2
my_matrix[1,2]
my_matrix[1:3,2:4]
my_matrix[,1]
my_matrix[1,]
all_wars_matrix
my_matrix[,2] my_matrix
># all_wars_matrix
> all_wars_matrix
US non-US
A New Hope 461.0 314.4
The Empire Strikes Back 290.5 247.9
Return of the Jedi 309.3 165.8
The Phantom Menace 474.5 552.5
Attack of the Clones 310.7 338.7
Revenge of the Sith 380.3 468.5
>
> #
26
> non_us_all <- all_wars_matrix[,2]
>
> #
> mean(non_us_all)
[1] 347.9667
>
> #
> #
> mean(non_us_some)
[1] 281.15
>
(1)
+ - / *
2 * my_matrix my_matrix 2
all_wars_matrix 5 5
all_wars_matrix 5
># all_wars_matrix
> all_wars_matrix
US non-US
A New Hope 461.0 314.4
The Empire Strikes Back 290.5 247.9
Return of the Jedi 309.3 165.8
The Phantom Menace 474.5 552.5
Attack of the Clones 310.7 338.7
27
Revenge of the Sith 380.3 468.5
>
> #
> #
> visitors
US non-US
A New Hope 92.20 62.88
The Empire Strikes Back 58.10 49.58
Return of the Jedi 61.86 33.16
The Phantom Menace 94.90 110.50
Attack of the Clones 62.14 67.74
Revenge of the Sith 76.06 93.70
>
(2)
my_matrix2
ticket_prices_matrix (imagination)
%*%
mean()
# all_wars_matrix ticket_prices_matrix
> all_wars_matrix
US non-US
A New Hope 461.0 314.4
28
The Empire Strikes Back 290.5 247.9
Return of the Jedi 309.3 165.8
The Phantom Menace 474.5 552.5
Attack of the Clones 310.7 338.7
Revenge of the Sith 380.3 468.5
> ticket_prices_matrix
US non-US
A New Hope 5.0 5.0
The Empire Strikes Back 6.0 6.0
Return of the Jedi 7.0 7.0
The Phantom Menace 4.0 4.0
Attack of the Clones 4.5 4.5
Revenge of the Sith 4.9 4.9
>
> #
> #
> visitors
US non-US
A New Hope 92.20000 62.88000
The Empire Strikes Back 48.41667 41.31667
Return of the Jedi 44.18571 23.68571
The Phantom Menace 118.62500 138.12500
Attack of the Clones 69.04444 75.26667
Revenge of the Sith 77.61224 95.61224
>
> #
Ch4.
(1)
29
(<-)
# theory
(2)
R factor() 5
gender_vector
gender_vector 2 R "Male"
"Female"
factor()
30
factor() gender_vector
factor_gender_vector
factor_gender_vector R
> # gender_vector
> # factor_gender_vector
> factor_gender_vector
[1] Male Female Female Male Male
Levels: Female Male
>
(3)
animals_vector
temperature_vector
"Medium" .
31
Submit Answer R Console R
>#
> #
levels()
"M" "F"
"Male" "Female"
"M" "F"
R Console
32
levels(factor_survey_vector)
"Female" "Male"
R Console
levels(factor_survey_vector)
># factor_survey_vector
> # factor_survey_vector
summary()summary()
summary(my_var)
33
summary()
># factor_survey_vector
> # survey_vector
> summary(survey_vector)
Length Class Mode
5 character character
>
> # factor_survey_vector
> summary(factor_survey_vector)
Female Male
2 3
>
factor_survey_vector R
# factor_survey_vector
34
> factor_survey_vector <- factor(survey_vector)
> levels(factor_survey_vector) <- c("Female", "Male")
>
> #
> #
> # ''
(1)
R ...
5 "slow"
speed_vector
1 fast
2 slow
3 slow
4 fast
35
5 insane
># speed_vector
(2)
speed_vector
factor() speed_vector
2 ordered levels
factor(some_vector,
ordered = TRUE,
levels = c("lev1", "lev2" ...))
levels
36
># speed_vector
> # speed_vector
> factor_speed_vector <- factor(speed_vector, ordered = TRUE, levels = c("slow", "fast", "insane"))
>
> # factor_speed_vector
> factor_speed_vector
[1] fast slow slow fast insane
Levels: slow < fast < insane
> summary(factor_speed_vector)
slow fast insane
2 2 1
>
2 5
factor_speed_vector >
factor_speed_vector[n] n
37
># factor_speed_vector
> # 2
> # 5
> # 2 5
...
38
SAS SPSS
># R
> mtcars
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
39
Volvo 142E 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2
>
R head()tail()
head() tail()
head(mtcars) mtcars
> head(mtcars)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
>
str()str()
40
32
11
str()
mtcars str()
># mtcars
> str(mtcars)
'data.frame': 32 obs. of 11 variables:
$ mpg : num 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
$ cyl : num 6 6 4 6 8 6 8 4 4 6 ...
$ disp: num 160 160 108 258 360 ...
$ hp : num 110 110 93 110 175 105 245 62 95 123 ...
$ drat: num 3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
$ wt : num 2.62 2.88 2.32 3.21 3.44 ...
$ qsec: num 16.5 17 18.6 19.4 17 ...
$ vs : num 0 0 1 1 0 1 0 1 1 1 ...
$ am : num 1 1 1 0 0 0 0 0 0 0 ...
$ gear: num 4 4 4 3 3 3 3 4 4 4 ...
$ carb: num 4 4 1 1 2 1 4 2 2 4 ...
>
(1)
41
TRUE FALSE
Wikipedia 5
data.frame() 5
data.frame() planets_df
> name <- c("Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune")
> type <- c("Terrestrial planet", "Terrestrial planet", "Terrestrial planet",
"Terrestrial planet", "Gas giant", "Gas giant", "Gas giant", "Gas giant")
> diameter <- c(0.382, 0.949, 1, 0.532, 11.209, 9.449, 4.007, 3.883)
> rotation <- c(58.64, -243.02, 1, 1.03, 0.41, 0.43, -0.72, 0.67)
> rings <- c(FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE)
42
>
> #
(2)
planets_df 8 5
planets_df str(planets_df)
># planets_df
> str(planets_df)
'data.frame': 8 obs. of 5 variables:
$ name : Factor w/ 8 levels "Earth","Jupiter",..: 4 8 1 3 2 6 7 5
$ type : Factor w/ 2 levels "Gas giant","Terrestrial planet": 2 2 2 2 1 1 1 1
$ diameter: num 0.382 0.949 1 0.532 11.209 ...
$ rotation: num 58.64 -243.02 1 1.03 0.41 ...
$ rings : logi FALSE FALSE FALSE FALSE TRUE TRUE ...
(1)
[ ]
my_df[1,2] my_df
my_df[1:3,2:4] my_df
my_df[1, ]
planets_df
43
planets_df[2,3]
># planets_df
>
> # ()
> planets_df[1, 3]
[1] 0.382
>
> # ()
> planets_df[4, ]
name type diameter rotation rings
4 Mars Terrestrial planet 0.532 1.03 FALSE
>
(2)
type
planets_df[1:3,1]
type
planets_df[1:3,"type"]
># planets_df
>
44
> # diameter 5
(1)
diameter
planets_df[,3]
planets_df[,"diameter"]
planets_df$diameter
rings_vector
rings
># planets_df
>
> # rings_vector
> rings_vector
[1] FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE
>
45
(2)
...
R Console rings_vector
FALSETRUE
rings_vector
[rings_vector, ]
>
> #
> planets_df[rings_vector, ]
name type diameter rotation rings
5 Jupiter Gas giant 11.209 0.41 TRUE
6 Saturn Gas giant 9.449 0.43 TRUE
7 Uranus Gas giant 4.007 -0.72 TRUE
8 Neptune Gas giant 3.883 0.67 TRUE
>
planets_df
46
subset()subset()
subset() R
rings_vector
planets_df subset()
diameter < 1
># planets_df
>
> # <1
007
R order()
order()
10 1 100
order(a) a
> a[order(a)]
[1] 10 100 1000
order() diameter
positions
positions planets_df
order(planets_df$diameter) positions
48
> planets_df[positions, ]
name type diameter rotation rings
1 Mercury Terrestrial planet 0.382 58.64 FALSE
4 Mars Terrestrial planet 0.532 1.03 FALSE
2 Venus Terrestrial planet 0.949 -243.02 FALSE
3 Earth Terrestrial planet 1.000 1.00 FALSE
8 Neptune Gas giant 3.883 0.67 TRUE
7 Uranus Gas giant 4.007 -0.72 TRUE
6 Saturn Gas giant 9.449 0.43 TRUE
5 Jupiter Gas giant 11.209 0.41 TRUE
>
Ch6. list
(1)
R ;-)
>
49
(2)
# Submit Answer
list()
list
># 1 10
> # 1 9
50
> # mtcars 10
> #
(1)
name1 name2
names()
my_df df
my_list
51
># 1 10
> # 1 9
> # mtcars 10
> # list()
> # my_list
> my_list
$vec
[1] 1 2 3 4 5 6 7 8 9 10
$mat
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
$df
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
52
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
>
(2)
R Console
shining_list 3
mov
act
rev
movienameactors reviews)
act rev
>
> # shining_list
53
shining_list
shining_list[[1]]
[ ] R Console
[[ ]] $
shining_list[["reviews"]]
shining_list$reviews
shining_list[[2]][1]
actors(shining_list[[2]])([1])R Console
shining_list
$actors
shining_list$actors[3]
># shining_list
>
> #
54
> shining_list$actors
[1] "Jack Nicholson" "Shelley Duvall" "Danny Lloyd" "Scatman Crothers"
[5] "Barry Nelson"
>
> #
> shining_list$actors[2]
[1] "Shelley Duvall"
>
M. McDowell
c()
my_list my_val
shining_list_full
str() shining_list_full
# shining_list
55
>
> # shining_list_full
> str(shining_list_full)
List of 4
$ moviename: chr "The Shining"
$ actors : chr [1:5] "Jack Nicholson" "Shelley Duvall" "Danny Lloyd" "Scatman Crothers" ...
$ reviews :'data.frame': 3 obs. of 3 variables:
..$ scores : num [1:3] 4.5 4 5
..$ sources : Factor w/ 3 levels "IMDb1","IMDb2",..: 1 2 3
..$ comments: Factor w/ 3 levels "A masterpiece of psychological horror",..: 3 2 1
$ year : num 1980
>
56