問題:次の7つの処理を実行し、その結果をRmdファイルからhtmlファイルにknitし、moodleに張り付けなさい。
ただし、処理5についてはMoodleに設定したQuizに回答しなさい。
English, History, Japanese, Information, Science, Mathematicsの6教科の点数と
合計の点数を男女について比較する
次に示す7つの処理を実行しなさい。
7つの処理は各々を別々のchunkとしてコードを記述し、また、コメントとして最初にどの処理かを記述すること
処理1
moodleにあるexcelデータ(exam.xlsx)を"data"オブジェクト に読み込み、内容をhead()で確認する
処理2
6科目の得点の合計を計算し、これを新たに作るTotal列に追加する。
各々の合計をdataのTotal列に代入する。
#合計点数の計算とTotal列への追加処理は次の通り
# apply()関数を使う
# dataオブジェクトの2列目から7列目のデータを行毎(2つ目の引数に1を指定)に合計sumし、totalへ代入する
#以下の4行のコードの通り実行すればよい
total <- apply(data[ ,2:7], 1, sum)
# totalの内容を確認
total
# mutate()関数により新たな列を作り、dataオブジェクトに追加する
data <- data %>% mutate(Total=total) #"Total"は列名をTotalとする指定、またそのTotalに"total"で数値を代入する
# dataの内容を確認する
head(data)
処理3
各々(6科目とTotalの7項目)について箱ひげ図を描画するためのオブジェクトを作成する
#Englishのみを描画する。この時点では他の科目は表示しない。
次に、日本語処理と平均値表示のための処理を、前に作ったオブジェクトに追加する
#そして、Englishのみを描画する。この時点では他の科目は表示しない。
処理4
日本語処理と平均値表示を追加した図を1つの図(レイアウト表示)として描画する。
6科目は2列3行に、Totalは4行目にレイアウトする。
7つの図のレイアウトは次の通り。
1, 2
3, 4
5, 6
7, 7
処理5
7項目の具体的な数値について男女別に「要約関数」により確認する。
例えば次のコードによりdataの男だけを抽出できる。
man <- data %>% subset(Sex=="男")
manに対して要約関数を適用すればよい。
同様に女だけのデータを抽出し要約関数を適用して確認すればよい。
次に、男女の区別なく全体に対して相関係数を「cor()関数」により調べる。
cor()関数の具体的なコードは次の通り。
cor(data[ ,2:8])
この確認内容については、確認結果をMoodleのQuizに入力すること(提出するhtmlファイルの対象ではない)。
処理6
前の処理(cor()関数の結果)で確認した、一番相関の高い2教科を選び、その散布図を描画する
処理7
更に前の処理に対し、次のレイヤ処理を追加した図を表示する。
日本語処理 theme_bw(base_family="HiraKakuProN-W3")
回帰直線 geom_smooth(method="lm")
タイトル labs(title="情報と???の相関", subtitle="(相関係数 r=???)")
タイトルの位置と大きさ調整
theme(plot.title = element_text(hjust = 0.5), plot.subtitle = element_text(hjust = 0.5), text = element_text(size = 20))
(注意)本実行に必要なlibraryは次の通り
library(ggplot2) # ggplot()関数の利用
library(readxl) # excelデータの読込み read_xlsx()関数の利用
library(dplyr) # %>% パイプの利用
library(gridExtra) # レイアウト表示 grid.arrange()関数の利用
処理1
library(ggplot2) # ggplot()関数の利用
library(readxl) # excelデータの読込み read_xlsx()関数の利用
## Warning: package 'readxl' was built under R version 3.4.4
library(dplyr) # %>% パイプの利用
## Warning: package 'dplyr' was built under R version 3.4.4
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(gridExtra) # レイアウト表示 grid.arrange()関数の利用
##
## Attaching package: 'gridExtra'
## The following object is masked from 'package:dplyr':
##
## combine
data <- read_xlsx("exam.xlsx")
head(data)
## # A tibble: 6 x 7
## Sex English History Japanese Information Science Mathematics
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 男 77 67 61 78 68 61
## 2 女 74 76 74 65 61 57
## 3 女 86 74 82 95 85 80
## 4 男 90 86 89 91 69 68
## 5 女 76 75 61 79 71 69
## 6 男 56 69 61 55 58 43
処理2
## [1] 412 407 502 493 431 342 422 413 400 464 425 409 414 414 391 389 322
## [18] 358 466 406 410 386 401 382 402 345 439 435 342 380 410 386 429 402
## [35] 387 438 390 373 374 311
## # A tibble: 6 x 8
## Sex English History Japanese Information Science Mathematics Total
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 男 77 67 61 78 68 61 412
## 2 女 74 76 74 65 61 57 407
## 3 女 86 74 82 95 85 80 502
## 4 男 90 86 89 91 69 68 493
## 5 女 76 75 61 79 71 69 431
## 6 男 56 69 61 55 58 43 342
処理3
処理4
処理5 (参考のため表示:提出ファイルにはこの部分は必要ない)
## # A tibble: 6 x 8
## Sex English History Japanese Information Science Mathematics Total
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 男 77 67 61 78 68 61 412
## 2 女 74 76 74 65 61 57 407
## 3 女 86 74 82 95 85 80 502
## 4 男 90 86 89 91 69 68 493
## 5 女 76 75 61 79 71 69 431
## 6 男 56 69 61 55 58 43 342
## English History Japanese Information Science
## English 1.0000000 0.4926505 0.530452462 0.5308303 0.4690630
## History 0.4926505 1.0000000 0.732840764 0.1542325 0.1260787
## Japanese 0.5304525 0.7328408 1.000000000 0.2414032 0.1371395
## Information 0.5308303 0.1542325 0.241403204 1.0000000 0.7771941
## Science 0.4690630 0.1260787 0.137139457 0.7771941 1.0000000
## Mathematics 0.3621577 0.0163803 0.003885084 0.8164998 0.6918550
## Total 0.7819100 0.5340811 0.581654031 0.8604219 0.7762452
## Mathematics Total
## English 0.362157714 0.7819100
## History 0.016380298 0.5340811
## Japanese 0.003885084 0.5816540
## Information 0.816499800 0.8604219
## Science 0.691855030 0.7762452
## Mathematics 1.000000000 0.7164314
## Total 0.716431406 1.0000000
処理6
# x軸とy軸のラベル表示を意図的に消している(Informationとどの科目が一番相関が高いかを隠すため)
# 皆さんの回答では表示させること(特別な処理をしなければ表示される)
処理7
## 情報と"???"の???には処理5で確認した教科名を日本語で記述すること
## 相関係数 r=??? の???には、処理5においてcor()関数により調べた両者の相関係数を記述すること