4
2020 1 30
1 1
2 2
2.1 . . . . . . . . . . . . . . . . . . . . . . 2
2.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3 4
3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.4.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.4.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.4.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4 9
4.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5 10
1
•
•
•
1
4
2
2.1
• 3 [3] 3 2
[3, 2]
• [] [ , ]
•
> personal # personal
ID1 173.5 66 19
ID2 166.4 58 20
ID3 168.0 NA 18
ID4 170.3 81 20
ID5 169.0 61 23
ID6 159.0 63 20
> personal[3, 2] # 3 2
[1] 168
> personal[3, ] # 3
ID3 168 NA 18
> personal[ ,1] # 1
[1] " " " " " " " " " " " "
> personal[c(1, 4), ] # 1 4
ID1 173.5 66 19
ID4 170.3 81 20
> personal[1:3, c(1,6)] # 1 3 1 6
ID1
I 2
2.2 4
ID2
ID3
2.2
> personal["ID3", " "] # ID3
[1] 168
> personal["ID3", ] # ID3
ID3 168 NA 18
> personal[ ," "] #
[1] " " " " " " " " " " " "
> personal[c("ID1", "ID4"), ] # ID1 ID4
ID1 173.5 66 19
ID4 170.3 81 20
> personal[paste("ID", 1:3, sep=""), c(" ", " "), ]
ID1
ID2
ID3
$
> personal$ #
[1] " " " " " " " " " " " "
> personal$
[1] " " " " " " " " " " " "
3 $
2.3
TRUE, FALSE
[] TRUE TRUE
T FALSE F
> personal[c(T, F, T, F, F, F),] # TRUE
I 3
2.4 4
ID1 173.5 66 19
ID3 168.0 NA 18
> personal[, c(T, F, T, F, T, F)] # 1, 3, 5 TRUE
ID1 66
ID2 58
ID3 NA
ID4 81
ID5 61
ID6 63
> personal[c(T, F, T, F, F, F), c(T, F, T, F, T, F)] # 2
ID1 66
ID3 NA
> a <- c("a", "b", "c", "d")
> a[c(TRUE, FALSE, TRUE, FALSE)]
[1] "a" "c"
2.4
•
•
• 2
• 3
•
3
3.1
I 4
3.1 4
> 3 > 1 #
[1] TRUE
> 3 < 1
[1] FALSE
> 3 < 3
[1] FALSE
> 3 <= 5
[1] TRUE
> 5 <= 3
[1] FALSE
> 3 <= 3
[1] TRUE
> 3 == 3 #
[1] TRUE
> "3 " == "4 " # ==
[1] FALSE
> "3 " == "3 "
[1] TRUE
> 3 != 3 #
[1] FALSE
> 3 != 1 # TRUE FALSE
[1] TRUE
> "3 " != "4 "
[1] TRUE
> "3 " != "3 "
[1] FALSE
> NA == NA #
[1] NA
> is.na(NA) # is.na()
[1] TRUE
> NA == 4
[1] NA
> is.na(4)
[1] FALSE
> (10 %% 2) == 0 # 0
[1] TRUE
> (9 %% 2) == 0
[1] FALSE
R
> a <- 1:10
> b <- 2:11
> a < b # a b
[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
> a == b # a b
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
> (a %% 2) == 0 # a
I 5
3.2 4
[1] FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE
3.2
1 10 a
> a
[1] 1 2 3 4 5 6 7 8 9 10
> (a %% 2) == 0 # a TRUE
[1] FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE
> a[(a %% 2) == 0] # []
[1] 2 4 6 8 10
−10 10 b
> b <- -10:10 # b -10 10
> b
[1] -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9
[21] 10
> b < 0 # b TRUE
[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE
[14] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
> b[b<0] # []
[1] -10 -9 -8 -7 -6 -5 -4 -3 -2 -1
[] []
> negative <- b < 0 # b<0 negative
> b[negative] #
[1] -10 -9 -8 -7 -6 -5 -4 -3 -2 -1
> personal[, " "] == " " #
[1] FALSE TRUE TRUE FALSE FALSE FALSE
> personal[personal[, " "] == " ", ] # []
ID2 166.4 58 20
ID3 168.0 NA 18
I 6
3.3 4
> is.women <- personal$ == " " # $
> personal[is.women, ] #
ID2 166.4 58 20
ID3 168.0 NA 18
> personal[personal$ ==" ", " "] #
[1] " "
3.3
> personal[is.na(personal$ ), ]
ID3 168 NA 18
3.4
3.4.1
1 OR 2
OR |
> TRUE | FALSE
[1] TRUE
> FALSE | TRUE
[1] TRUE
> TRUE | TRUE
[1] TRUE
> FALSE | FALSE
[1] FALSE
I 7
3.4 4
| 1
> personal[(personal$ == " ") | (personal$ == " "),]
ID1 173.5 66 19
ID2 166.4 58 20
ID5 169.0 61 23
3.4.2
1 AND 2
AND &
> TRUE & FALSE
[1] FALSE
> FALSE & TRUE
[1] FALSE
> TRUE & TRUE
[1] TRUE
> FALSE & FALSE
[1] FALSE
170cm
> personal[(personal$ == " ") & (personal$ >= 170), ]
ID1 173.5 66 19
ID4 170.3 81 20
3.4.3
NOT !
> !TRUE
[1] FALSE
> !FALSE
[1] TRUE
> !("abc" == "abc")
[1] FALSE
1 == |
I 8
3.5 4
> personal[!(personal$ == " "), ] #
ID2 166.4 58 20
ID3 168.0 NA 18
ID4 170.3 81 20
ID6 159.0 63 20
> personal[personal$ != " ", ] # !=
ID2 166.4 58 20
ID3 168.0 NA 18
ID4 170.3 81 20
ID6 159.0 63 20
3.5
• 2
•
• a
• meibo TEL 092-331-3921
• NOT
• AND
• OR
4
R
<-
personal NA 60
> personal[personal$ == " ", " "] <- 60 #
> personal[personal$ == " ",] #
ID3 168 60 18
M F
I 9
4.1 4
> personal[personal$ == " ", " "] <- "M" # M
> personal
ID1 173.5 66 19 M
ID2 166.4 58 20
ID3 168.0 60 18
ID4 170.3 81 20 M
ID5 169.0 61 23 M
ID6 159.0 63 20 M
> personal[personal$ == " ", " "] <- "F" # F
> personal
ID1 173.5 66 19 M
ID2 166.4 58 20 F
ID3 168.0 60 18 F
ID4 170.3 81 20 M
ID5 169.0 61 23 M
ID6 159.0 63 20 M
colnames(personal) <-
4.1
•
• mydata 3 2 10
5
personal
> personal
ID1 173.5 66 19 M
ID2 166.4 58 20 F
ID3 168.0 60 18 F
ID4 170.3 81 20 M
ID5 169.0 61 23 M
ID6 159.0 63 20 M
I 10
4
(1)
6 personal
96
49
100
75
81
55
> <- c(96, 49, 100, 75, 81, 55)
> personal <- cbind(personal, )
> personal
ID1 173.5 66 19 M 96
ID2 166.4 58 20 F 49
ID3 168.0 60 18 F 100
ID4 170.3 81 20 M 75
ID5 169.0 61 23 M 81
ID6 159.0 63 20 M 55
(2)
60 TRUE FALSE
> personal <- cbind(personal, =(personal$ >= 60))
> personal
ID1 173.5 66 19 M 96 TRUE
ID2 166.4 58 20 F 49 FALSE
ID3 168.0 60 18 F 100 TRUE
ID4 170.3 81 20 M 75 TRUE
ID5 169.0 61 23 M 81 TRUE
ID6 159.0 63 20 M 55 FALSE
cbind()
> personal[, " "] <- personal$ >= 60
I 11
4
cbind() cbind()
personal
(3)
> personal[personal$ ,]
ID1 173.5 66 19 M 96 TRUE
ID3 168.0 60 18 F 100 TRUE
ID4 170.3 81 20 M 75 TRUE
ID5 169.0 61 23 M 81 TRUE
(4)
personal2
> personal[, c(" "," "," "," "," "," "," ")]
ID1 96 TRUE M 173.5 66
ID2 49 FALSE F 166.4 58
ID3 100 TRUE F 168.0 60
ID4 75 TRUE M 170.3 81
ID5 81 TRUE M 169.0 61
ID6 55 FALSE M 159.0 63
> personal[, c(1, 7, 8, 5, 6, 2, 3)] #
ID1 96 TRUE M 173.5 66
ID2 49 FALSE F 166.4 58
ID3 100 TRUE F 168.0 60
ID4 75 TRUE M 170.3 81
ID5 81 TRUE M 169.0 61
ID6 55 FALSE M 159.0 63
(5)
90 A 80 B 60 C 60 D
I 12
4
> personal[personal$ >=90, " "] <- "A" #
> personal #
ID1 173.5 66 19 M 96 TRUE A
ID2 166.4 58 20 F 49 FALSE <NA>
ID3 168.0 60 18 F 100 TRUE A
ID4 170.3 81 20 M 75 TRUE <NA>
ID5 169.0 61 23 M 81 TRUE <NA>
ID6 159.0 63 20 M 55 FALSE <NA>
> personal[personal$ <90 & personal$ >=80, " "] <- "B"
> personal[personal$ <80 & personal$ >=60, " "] <- "C"
> personal[personal$ <60, " "] <- "D"
> personal
ID1 173.5 66 19 M 96 TRUE A
ID2 166.4 58 20 F 49 FALSE D
ID3 168.0 60 18 F 100 TRUE A
ID4 170.3 81 20 M 75 TRUE C
ID5 169.0 61 23 M 81 TRUE B
ID6 159.0 63 20 M 55 FALSE D
personal
(6)
> mean(personal$ ) # (mean)
[1] 76
> sd(personal$ ) # (standard deviation)
[1] 20.84226
> var(personal$ ) # (variance)
[1] 434.4
> summary(personal$ ) #
Min. 1st Qu. Median Mean 3rd Qu. Max.
49.00 60.00 78.00 76.00 92.25 100.00
I 13

第4回 データフレームの基本操作 その2(解答付き)

  • 1.
    4 2020 1 30 11 2 2 2.1 . . . . . . . . . . . . . . . . . . . . . . 2 2.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3 4 3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.4.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.4.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.4.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4 9 4.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 5 10 1 • • • 1
  • 2.
    4 2 2.1 • 3 [3]3 2 [3, 2] • [] [ , ] • > personal # personal ID1 173.5 66 19 ID2 166.4 58 20 ID3 168.0 NA 18 ID4 170.3 81 20 ID5 169.0 61 23 ID6 159.0 63 20 > personal[3, 2] # 3 2 [1] 168 > personal[3, ] # 3 ID3 168 NA 18 > personal[ ,1] # 1 [1] " " " " " " " " " " " " > personal[c(1, 4), ] # 1 4 ID1 173.5 66 19 ID4 170.3 81 20 > personal[1:3, c(1,6)] # 1 3 1 6 ID1 I 2
  • 3.
    2.2 4 ID2 ID3 2.2 > personal["ID3"," "] # ID3 [1] 168 > personal["ID3", ] # ID3 ID3 168 NA 18 > personal[ ," "] # [1] " " " " " " " " " " " " > personal[c("ID1", "ID4"), ] # ID1 ID4 ID1 173.5 66 19 ID4 170.3 81 20 > personal[paste("ID", 1:3, sep=""), c(" ", " "), ] ID1 ID2 ID3 $ > personal$ # [1] " " " " " " " " " " " " > personal$ [1] " " " " " " " " " " " " 3 $ 2.3 TRUE, FALSE [] TRUE TRUE T FALSE F > personal[c(T, F, T, F, F, F),] # TRUE I 3
  • 4.
    2.4 4 ID1 173.566 19 ID3 168.0 NA 18 > personal[, c(T, F, T, F, T, F)] # 1, 3, 5 TRUE ID1 66 ID2 58 ID3 NA ID4 81 ID5 61 ID6 63 > personal[c(T, F, T, F, F, F), c(T, F, T, F, T, F)] # 2 ID1 66 ID3 NA > a <- c("a", "b", "c", "d") > a[c(TRUE, FALSE, TRUE, FALSE)] [1] "a" "c" 2.4 • • • 2 • 3 • 3 3.1 I 4
  • 5.
    3.1 4 > 3> 1 # [1] TRUE > 3 < 1 [1] FALSE > 3 < 3 [1] FALSE > 3 <= 5 [1] TRUE > 5 <= 3 [1] FALSE > 3 <= 3 [1] TRUE > 3 == 3 # [1] TRUE > "3 " == "4 " # == [1] FALSE > "3 " == "3 " [1] TRUE > 3 != 3 # [1] FALSE > 3 != 1 # TRUE FALSE [1] TRUE > "3 " != "4 " [1] TRUE > "3 " != "3 " [1] FALSE > NA == NA # [1] NA > is.na(NA) # is.na() [1] TRUE > NA == 4 [1] NA > is.na(4) [1] FALSE > (10 %% 2) == 0 # 0 [1] TRUE > (9 %% 2) == 0 [1] FALSE R > a <- 1:10 > b <- 2:11 > a < b # a b [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE > a == b # a b [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE > (a %% 2) == 0 # a I 5
  • 6.
    3.2 4 [1] FALSETRUE FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE 3.2 1 10 a > a [1] 1 2 3 4 5 6 7 8 9 10 > (a %% 2) == 0 # a TRUE [1] FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE > a[(a %% 2) == 0] # [] [1] 2 4 6 8 10 −10 10 b > b <- -10:10 # b -10 10 > b [1] -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 [21] 10 > b < 0 # b TRUE [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE [14] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE > b[b<0] # [] [1] -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 [] [] > negative <- b < 0 # b<0 negative > b[negative] # [1] -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 > personal[, " "] == " " # [1] FALSE TRUE TRUE FALSE FALSE FALSE > personal[personal[, " "] == " ", ] # [] ID2 166.4 58 20 ID3 168.0 NA 18 I 6
  • 7.
    3.3 4 > is.women<- personal$ == " " # $ > personal[is.women, ] # ID2 166.4 58 20 ID3 168.0 NA 18 > personal[personal$ ==" ", " "] # [1] " " 3.3 > personal[is.na(personal$ ), ] ID3 168 NA 18 3.4 3.4.1 1 OR 2 OR | > TRUE | FALSE [1] TRUE > FALSE | TRUE [1] TRUE > TRUE | TRUE [1] TRUE > FALSE | FALSE [1] FALSE I 7
  • 8.
    3.4 4 | 1 >personal[(personal$ == " ") | (personal$ == " "),] ID1 173.5 66 19 ID2 166.4 58 20 ID5 169.0 61 23 3.4.2 1 AND 2 AND & > TRUE & FALSE [1] FALSE > FALSE & TRUE [1] FALSE > TRUE & TRUE [1] TRUE > FALSE & FALSE [1] FALSE 170cm > personal[(personal$ == " ") & (personal$ >= 170), ] ID1 173.5 66 19 ID4 170.3 81 20 3.4.3 NOT ! > !TRUE [1] FALSE > !FALSE [1] TRUE > !("abc" == "abc") [1] FALSE 1 == | I 8
  • 9.
    3.5 4 > personal[!(personal$== " "), ] # ID2 166.4 58 20 ID3 168.0 NA 18 ID4 170.3 81 20 ID6 159.0 63 20 > personal[personal$ != " ", ] # != ID2 166.4 58 20 ID3 168.0 NA 18 ID4 170.3 81 20 ID6 159.0 63 20 3.5 • 2 • • a • meibo TEL 092-331-3921 • NOT • AND • OR 4 R <- personal NA 60 > personal[personal$ == " ", " "] <- 60 # > personal[personal$ == " ",] # ID3 168 60 18 M F I 9
  • 10.
    4.1 4 > personal[personal$== " ", " "] <- "M" # M > personal ID1 173.5 66 19 M ID2 166.4 58 20 ID3 168.0 60 18 ID4 170.3 81 20 M ID5 169.0 61 23 M ID6 159.0 63 20 M > personal[personal$ == " ", " "] <- "F" # F > personal ID1 173.5 66 19 M ID2 166.4 58 20 F ID3 168.0 60 18 F ID4 170.3 81 20 M ID5 169.0 61 23 M ID6 159.0 63 20 M colnames(personal) <- 4.1 • • mydata 3 2 10 5 personal > personal ID1 173.5 66 19 M ID2 166.4 58 20 F ID3 168.0 60 18 F ID4 170.3 81 20 M ID5 169.0 61 23 M ID6 159.0 63 20 M I 10
  • 11.
    4 (1) 6 personal 96 49 100 75 81 55 > <-c(96, 49, 100, 75, 81, 55) > personal <- cbind(personal, ) > personal ID1 173.5 66 19 M 96 ID2 166.4 58 20 F 49 ID3 168.0 60 18 F 100 ID4 170.3 81 20 M 75 ID5 169.0 61 23 M 81 ID6 159.0 63 20 M 55 (2) 60 TRUE FALSE > personal <- cbind(personal, =(personal$ >= 60)) > personal ID1 173.5 66 19 M 96 TRUE ID2 166.4 58 20 F 49 FALSE ID3 168.0 60 18 F 100 TRUE ID4 170.3 81 20 M 75 TRUE ID5 169.0 61 23 M 81 TRUE ID6 159.0 63 20 M 55 FALSE cbind() > personal[, " "] <- personal$ >= 60 I 11
  • 12.
    4 cbind() cbind() personal (3) > personal[personal$,] ID1 173.5 66 19 M 96 TRUE ID3 168.0 60 18 F 100 TRUE ID4 170.3 81 20 M 75 TRUE ID5 169.0 61 23 M 81 TRUE (4) personal2 > personal[, c(" "," "," "," "," "," "," ")] ID1 96 TRUE M 173.5 66 ID2 49 FALSE F 166.4 58 ID3 100 TRUE F 168.0 60 ID4 75 TRUE M 170.3 81 ID5 81 TRUE M 169.0 61 ID6 55 FALSE M 159.0 63 > personal[, c(1, 7, 8, 5, 6, 2, 3)] # ID1 96 TRUE M 173.5 66 ID2 49 FALSE F 166.4 58 ID3 100 TRUE F 168.0 60 ID4 75 TRUE M 170.3 81 ID5 81 TRUE M 169.0 61 ID6 55 FALSE M 159.0 63 (5) 90 A 80 B 60 C 60 D I 12
  • 13.
    4 > personal[personal$ >=90," "] <- "A" # > personal # ID1 173.5 66 19 M 96 TRUE A ID2 166.4 58 20 F 49 FALSE <NA> ID3 168.0 60 18 F 100 TRUE A ID4 170.3 81 20 M 75 TRUE <NA> ID5 169.0 61 23 M 81 TRUE <NA> ID6 159.0 63 20 M 55 FALSE <NA> > personal[personal$ <90 & personal$ >=80, " "] <- "B" > personal[personal$ <80 & personal$ >=60, " "] <- "C" > personal[personal$ <60, " "] <- "D" > personal ID1 173.5 66 19 M 96 TRUE A ID2 166.4 58 20 F 49 FALSE D ID3 168.0 60 18 F 100 TRUE A ID4 170.3 81 20 M 75 TRUE C ID5 169.0 61 23 M 81 TRUE B ID6 159.0 63 20 M 55 FALSE D personal (6) > mean(personal$ ) # (mean) [1] 76 > sd(personal$ ) # (standard deviation) [1] 20.84226 > var(personal$ ) # (variance) [1] 434.4 > summary(personal$ ) # Min. 1st Qu. Median Mean 3rd Qu. Max. 49.00 60.00 78.00 76.00 92.25 100.00 I 13