右下のPackages からRcmdrを選んでチェックボタンをクリックし,Rコマンダーを起動した。その後、メニューでデータ>データのインポート>エクセルファイルから,を選択し,lesson4.xlsxを選んでデータを読み込んだ。データセット名はDatasetのまま変更せず、Rコマンダー側で作成されたRスクリプト方式の命令文を下のRチャンク内にペーストした。このときファイルの階層構造に相当する情報は削除する必要があるため、削除した。
Dataset <- readXL("C:/Users/hayashikazuki/Downloads/lecture42.xlsx", rownames=FALSE, header=TRUE, na="", sheet="lecture42", stringsAsFactors=TRUE)
Dataset
## No sex bl
## 1 1 f 163
## 2 2 m 169
## 3 3 f 154
## 4 4 m 175
## 5 5 m 167
## 6 6 m 182
## 7 7 m 168
## 8 8 m 172
## 9 9 m 178
## 10 10 m 167
## 11 11 m 177
## 12 12 m 165
## 13 13 m 171
## 14 14 m 173
## 15 15 m 167
## 16 16 m 170
## 17 17 f 152
## 18 18 f 156
## 19 19 f 153
## 20 20 m 174
## 21 21 m 170
## 22 22 f 157
## 23 23 m 162
## 24 24 m 180
## 25 25 m 167
## 26 26 f 157
## 27 27 m 176
## 28 28 m 184
## 29 29 m 159
## 30 30 m 171
## 31 31 f 155
## 32 32 f 165
## 33 33 m 159
## 34 34 m 176
## 35 35 f 165
## 36 36 f 162
## 37 37 m 162
## 38 38 f 165
## 39 39 f 167
## 40 40 m 189
## 41 41 m 168
## 42 42 m 160
## 43 43 f 161
## 44 44 m 164
## 45 45 m 170
## 46 46 m 173
## 47 47 f 152
## 48 48 m 175
## 49 49 f 158
## 50 50 m 180
## 51 51 f 155
## 52 52 f 158
## 53 53 f 152
## 54 54 m 168
## 55 55 f 160
## 56 56 f 162
## 57 57 m 168
## 58 58 f 152
## 59 59 m 174
## 60 60 m 178
## 61 61 m 170
## 62 62 m 183
## 63 63 f 158
## 64 64 m 171
## 65 65 f 165
## 66 66 m 173
## 67 67 m 174
## 68 68 f 160
## 69 69 m 171
## 70 70 f 158
## 71 71 m 166
## 72 72 f 165
## 73 73 m 172
## 74 74 m 175
## 75 75 m 165
## 76 76 m 185
## 77 77 m 162
## 78 78 m 173
## 79 79 f 154
## 80 80 m 171
## 81 81 f 160
## 82 82 f 153
## 83 83 f 150
## 84 84 m 171
## 85 85 m 177
## 86 86 f 155
## 87 87 m 173
## 88 88 m 165
## 89 89 f 157
## 90 90 f 160
## 91 91 f 150
## 92 92 f 151
## 93 93 m 170
## 94 94 m 175
## 95 95 m 170
## 96 96 f 148
## 97 97 f 155
## 98 98 f 160
## 99 99 m 180
## 100 100 f 156
## 101 101 f 161
## 102 102 m 175
## 103 103 m 172
## 104 104 m 172
## 105 105 m 167
## 106 106 f 152
## 107 107 f 162
## 108 108 f 161
## 109 109 f 160
## 110 110 f 152
## 111 111 m 168
## 112 112 m 177
## 113 113 m 166
## 114 114 f 155
## 115 115 m 176
## 116 116 m 178
## 117 117 m 160
## 118 118 f 151
## 119 119 m 175
## 120 120 m 175
## 121 121 f 155
## 122 122 m 160
## 123 123 f 154
## 124 124 m 175
## 125 125 m 174
## 126 126 f 163
## 127 127 m 172
## 128 128 f 160
## 129 129 m 165
## 130 130 m 175
## 131 131 m 179
## 132 132 m 170
## 133 133 m 169
## 134 134 f 163
## 135 135 m 174
## 136 136 m 182
## 137 137 f 150
## 138 138 m 177
## 139 139 m 168
## 140 140 f 154
## 141 141 m 186
## 142 142 f 158
## 143 143 m 171
## 144 144 m 169
## 145 145 f 163
## 146 146 m 163
## 147 147 m 168
## 148 148 m 170
## 149 149 f 159
## 150 150 f 167
## 151 151 f 155
## 152 152 m 175
## 153 153 f 157
## 154 154 m 181
## 155 155 f 152
## 156 156 m 178
## 157 157 m 165
## 158 158 f 152
## 159 159 m 176
## 160 160 f 157
## 161 161 f 158
## 162 162 f 158
## 163 163 f 172
## 164 164 m 181
## 165 165 m 169
## 166 166 m 172
## 167 167 m 176
## 168 168 m 165
## 169 169 m 172
## 170 170 m 170
## 171 171 m 172
## 172 172 m 181
## 173 173 m 171
## 174 174 m 182
## 175 175 m 179
## 176 176 f 160
## 177 177 m 168
## 178 178 m 170
## 179 179 f 171
## 180 180 m 165
## 181 181 m 159
## 182 182 f 155
## 183 183 m 173
## 184 184 f 162
## 185 185 m 171
## 186 186 m 180
## 187 187 f 151
## 188 188 f 154
## 189 189 m 165
## 190 190 f 154
## 191 191 m 175
## 192 192 m 165
## 193 193 f 165
## 194 194 f 159
## 195 195 m 180
## 196 196 m 166
## 197 197 f 154
## 198 198 f 165
## 199 199 f 161
## 200 200 m 171
## 201 201 f 165
## 202 202 f 158
## 203 203 m 168
## 204 204 m 184
## 205 205 m 172
## 206 206 m 170
## 207 207 m 182
## 208 208 f 155
## 209 209 m 177
## 210 210 f 161
## 211 211 m 177
## 212 212 f 160
## 213 213 f 151
## 214 214 f 162
## 215 215 m 176
## 216 216 m 181
## 217 217 m 171
## 218 218 m 175
## 219 219 f 157
## 220 220 m 174
## 221 221 f 154
## 222 222 f 165
## 223 223 f 160
## 224 224 m 173
## 225 225 m 182
## 226 226 f 150
## 227 227 m 175
## 228 228 f 165
## 229 229 m 180
## 230 230 m 168
## 231 231 f 168
## 232 232 m 171
## 233 233 m 162
## 234 234 m 185
## 235 235 m 172
## 236 236 f 154
## 237 237 f 155
## 238 238 f 164
## 239 239 f 153
## 240 240 m 173
## 241 241 m 172
## 242 242 f 166
## 243 243 f 153
## 244 244 f 158
## 245 245 m 177
## 246 246 f 161
## 247 247 m 169
## 248 248 f 152
## 249 249 f 157
## 250 250 m 164
Rコマンダーを使って一番単純なオプション指定で母集団250人分の身長についてヒストグラムを描画した。方法はグラフ>ヒストグラムで、変数はblを選択肢,ほかのオプションは全てデフォルトのままで行った。
with(Dataset, Hist(bl, scale="frequency", breaks="Sturges", col="darkgray"))
前回同様変数はblを選択し,「層別のプロット」をクリックして,sexを指定した。
with(Dataset, Hist(bl, groups=sex, scale="frequency", breaks="Sturges", col="darkgray"))
グラフ>ドットプロットで、変数はblを選択し,層別のプロットでsexを選択した。
with(Dataset, Dotplot(bl, by=sex, bin=FALSE))
グラフ>箱ひげ図の手順で作成した。
Boxplot(bl ~ sex, data=Dataset, id=list(method="y"))
## [1] "40"
ここでは第三回の課題で出題した、「身長データから5,10,30標本の無作為抽出を行ってその平均値を得ることを50回繰り返し、そのヒストグラム」をRを使って作成してみる。
numeric関数(カッコ内で指定した数の数値を格納する「ベクトル」を作成する)を用いて無作為抽出したデータの平均値を格納するベクトルを3つ作成した。
spl5 <- numeric(50)
spl10 <- numeric(50)
spl30 <- numeric(50)
sample関数を使用してDatasetのbl列の数値から無作為抽出を指定した回数行い,その値を用いてmean関数で平均値を算出後,spl5, spl10, spl30に代入した。
ここではその操作を50回繰り返すためにfor関数を使っている。下のような書き方をすると右辺にかかれている関数の出力をベクトルspl5, spl10, spl30のi番目に代入するということを1〜50回繰り返すことになる。
for (i in 1:50) spl5[i] <- round(mean (sample (Dataset$bl, 5)), digits =1)
for (i in 1:50) spl10[i] <- round(mean (sample (Dataset$bl, 10)), digits =1)
for (i in 1:50) spl30[i] <- round(mean (sample (Dataset$bl, 30)), digits =1)
ベクトルのままだと後でグラフを描画するときに扱いづらいので、まず個々のベクトルをdata.frame関数を使ってデータフレームと呼ばれる形式に変換した(samples列にはサンプル数を、bl列には個々の身長データが格納される)。その後,作成した4つのデータフレームDF5,DF10,DF30,DFLをrbind関数をつかって行方向で結合して単一データフレームDFにした。途中操作で使用したが後は不要なデータフレーム(DF5,DF10,DF30,DFL)をrf関数をつかって削除した。
DF5 <- data.frame(samples="5", bl=spl5)
DF10 <- data.frame(samples="10", bl=spl10)
DF30 <- data.frame(samples="30", bl=spl30)
DFL <- data.frame(samples="population", bl=Dataset$bl)
DF <- data.frame(rbind(DFL,DF5,DF10,DF30))
rm(DF5,DF10, DF30, DFL)
DF
## samples bl
## 1 population 163.0
## 2 population 169.0
## 3 population 154.0
## 4 population 175.0
## 5 population 167.0
## 6 population 182.0
## 7 population 168.0
## 8 population 172.0
## 9 population 178.0
## 10 population 167.0
## 11 population 177.0
## 12 population 165.0
## 13 population 171.0
## 14 population 173.0
## 15 population 167.0
## 16 population 170.0
## 17 population 152.0
## 18 population 156.0
## 19 population 153.0
## 20 population 174.0
## 21 population 170.0
## 22 population 157.0
## 23 population 162.0
## 24 population 180.0
## 25 population 167.0
## 26 population 157.0
## 27 population 176.0
## 28 population 184.0
## 29 population 159.0
## 30 population 171.0
## 31 population 155.0
## 32 population 165.0
## 33 population 159.0
## 34 population 176.0
## 35 population 165.0
## 36 population 162.0
## 37 population 162.0
## 38 population 165.0
## 39 population 167.0
## 40 population 189.0
## 41 population 168.0
## 42 population 160.0
## 43 population 161.0
## 44 population 164.0
## 45 population 170.0
## 46 population 173.0
## 47 population 152.0
## 48 population 175.0
## 49 population 158.0
## 50 population 180.0
## 51 population 155.0
## 52 population 158.0
## 53 population 152.0
## 54 population 168.0
## 55 population 160.0
## 56 population 162.0
## 57 population 168.0
## 58 population 152.0
## 59 population 174.0
## 60 population 178.0
## 61 population 170.0
## 62 population 183.0
## 63 population 158.0
## 64 population 171.0
## 65 population 165.0
## 66 population 173.0
## 67 population 174.0
## 68 population 160.0
## 69 population 171.0
## 70 population 158.0
## 71 population 166.0
## 72 population 165.0
## 73 population 172.0
## 74 population 175.0
## 75 population 165.0
## 76 population 185.0
## 77 population 162.0
## 78 population 173.0
## 79 population 154.0
## 80 population 171.0
## 81 population 160.0
## 82 population 153.0
## 83 population 150.0
## 84 population 171.0
## 85 population 177.0
## 86 population 155.0
## 87 population 173.0
## 88 population 165.0
## 89 population 157.0
## 90 population 160.0
## 91 population 150.0
## 92 population 151.0
## 93 population 170.0
## 94 population 175.0
## 95 population 170.0
## 96 population 148.0
## 97 population 155.0
## 98 population 160.0
## 99 population 180.0
## 100 population 156.0
## 101 population 161.0
## 102 population 175.0
## 103 population 172.0
## 104 population 172.0
## 105 population 167.0
## 106 population 152.0
## 107 population 162.0
## 108 population 161.0
## 109 population 160.0
## 110 population 152.0
## 111 population 168.0
## 112 population 177.0
## 113 population 166.0
## 114 population 155.0
## 115 population 176.0
## 116 population 178.0
## 117 population 160.0
## 118 population 151.0
## 119 population 175.0
## 120 population 175.0
## 121 population 155.0
## 122 population 160.0
## 123 population 154.0
## 124 population 175.0
## 125 population 174.0
## 126 population 163.0
## 127 population 172.0
## 128 population 160.0
## 129 population 165.0
## 130 population 175.0
## 131 population 179.0
## 132 population 170.0
## 133 population 169.0
## 134 population 163.0
## 135 population 174.0
## 136 population 182.0
## 137 population 150.0
## 138 population 177.0
## 139 population 168.0
## 140 population 154.0
## 141 population 186.0
## 142 population 158.0
## 143 population 171.0
## 144 population 169.0
## 145 population 163.0
## 146 population 163.0
## 147 population 168.0
## 148 population 170.0
## 149 population 159.0
## 150 population 167.0
## 151 population 155.0
## 152 population 175.0
## 153 population 157.0
## 154 population 181.0
## 155 population 152.0
## 156 population 178.0
## 157 population 165.0
## 158 population 152.0
## 159 population 176.0
## 160 population 157.0
## 161 population 158.0
## 162 population 158.0
## 163 population 172.0
## 164 population 181.0
## 165 population 169.0
## 166 population 172.0
## 167 population 176.0
## 168 population 165.0
## 169 population 172.0
## 170 population 170.0
## 171 population 172.0
## 172 population 181.0
## 173 population 171.0
## 174 population 182.0
## 175 population 179.0
## 176 population 160.0
## 177 population 168.0
## 178 population 170.0
## 179 population 171.0
## 180 population 165.0
## 181 population 159.0
## 182 population 155.0
## 183 population 173.0
## 184 population 162.0
## 185 population 171.0
## 186 population 180.0
## 187 population 151.0
## 188 population 154.0
## 189 population 165.0
## 190 population 154.0
## 191 population 175.0
## 192 population 165.0
## 193 population 165.0
## 194 population 159.0
## 195 population 180.0
## 196 population 166.0
## 197 population 154.0
## 198 population 165.0
## 199 population 161.0
## 200 population 171.0
## 201 population 165.0
## 202 population 158.0
## 203 population 168.0
## 204 population 184.0
## 205 population 172.0
## 206 population 170.0
## 207 population 182.0
## 208 population 155.0
## 209 population 177.0
## 210 population 161.0
## 211 population 177.0
## 212 population 160.0
## 213 population 151.0
## 214 population 162.0
## 215 population 176.0
## 216 population 181.0
## 217 population 171.0
## 218 population 175.0
## 219 population 157.0
## 220 population 174.0
## 221 population 154.0
## 222 population 165.0
## 223 population 160.0
## 224 population 173.0
## 225 population 182.0
## 226 population 150.0
## 227 population 175.0
## 228 population 165.0
## 229 population 180.0
## 230 population 168.0
## 231 population 168.0
## 232 population 171.0
## 233 population 162.0
## 234 population 185.0
## 235 population 172.0
## 236 population 154.0
## 237 population 155.0
## 238 population 164.0
## 239 population 153.0
## 240 population 173.0
## 241 population 172.0
## 242 population 166.0
## 243 population 153.0
## 244 population 158.0
## 245 population 177.0
## 246 population 161.0
## 247 population 169.0
## 248 population 152.0
## 249 population 157.0
## 250 population 164.0
## 251 5 167.0
## 252 5 166.0
## 253 5 166.4
## 254 5 165.8
## 255 5 171.2
## 256 5 170.4
## 257 5 159.4
## 258 5 176.0
## 259 5 166.2
## 260 5 170.6
## 261 5 162.4
## 262 5 165.6
## 263 5 163.6
## 264 5 168.8
## 265 5 165.4
## 266 5 165.2
## 267 5 168.4
## 268 5 166.2
## 269 5 165.6
## 270 5 166.4
## 271 5 166.0
## 272 5 164.8
## 273 5 169.4
## 274 5 174.8
## 275 5 162.0
## 276 5 166.8
## 277 5 163.0
## 278 5 165.2
## 279 5 163.2
## 280 5 170.6
## 281 5 166.6
## 282 5 171.0
## 283 5 168.0
## 284 5 166.8
## 285 5 158.6
## 286 5 163.0
## 287 5 163.4
## 288 5 169.2
## 289 5 164.4
## 290 5 165.4
## 291 5 166.8
## 292 5 163.4
## 293 5 170.6
## 294 5 168.8
## 295 5 171.4
## 296 5 164.6
## 297 5 160.6
## 298 5 175.4
## 299 5 153.6
## 300 5 166.0
## 301 10 163.3
## 302 10 161.8
## 303 10 168.7
## 304 10 168.0
## 305 10 167.5
## 306 10 170.0
## 307 10 165.6
## 308 10 169.3
## 309 10 166.9
## 310 10 164.6
## 311 10 163.3
## 312 10 166.7
## 313 10 170.6
## 314 10 163.9
## 315 10 162.3
## 316 10 166.4
## 317 10 167.2
## 318 10 168.1
## 319 10 160.8
## 320 10 169.6
## 321 10 162.7
## 322 10 169.6
## 323 10 168.2
## 324 10 165.3
## 325 10 165.7
## 326 10 160.9
## 327 10 166.3
## 328 10 167.6
## 329 10 164.9
## 330 10 166.8
## 331 10 163.4
## 332 10 167.2
## 333 10 170.6
## 334 10 165.7
## 335 10 166.0
## 336 10 169.2
## 337 10 162.9
## 338 10 168.6
## 339 10 165.7
## 340 10 160.4
## 341 10 161.0
## 342 10 160.5
## 343 10 170.1
## 344 10 163.9
## 345 10 163.0
## 346 10 162.0
## 347 10 167.8
## 348 10 166.2
## 349 10 169.2
## 350 10 169.2
## 351 30 166.8
## 352 30 163.5
## 353 30 162.9
## 354 30 165.3
## 355 30 165.4
## 356 30 165.1
## 357 30 166.9
## 358 30 168.3
## 359 30 166.6
## 360 30 166.6
## 361 30 164.7
## 362 30 164.0
## 363 30 164.5
## 364 30 166.6
## 365 30 166.3
## 366 30 167.7
## 367 30 165.6
## 368 30 165.4
## 369 30 164.7
## 370 30 168.3
## 371 30 166.7
## 372 30 165.1
## 373 30 166.4
## 374 30 164.2
## 375 30 165.9
## 376 30 164.0
## 377 30 164.1
## 378 30 165.5
## 379 30 166.9
## 380 30 164.7
## 381 30 164.2
## 382 30 166.4
## 383 30 166.5
## 384 30 167.4
## 385 30 167.1
## 386 30 166.0
## 387 30 166.3
## 388 30 168.9
## 389 30 165.4
## 390 30 166.0
## 391 30 162.4
## 392 30 167.3
## 393 30 166.0
## 394 30 166.5
## 395 30 165.1
## 396 30 165.8
## 397 30 165.7
## 398 30 167.7
## 399 30 163.5
## 400 30 169.3
R Commanderを使ってメニュー操作でヒストグラムを描画後,Rチャンクの内容をコピペした。
with(DF, Hist(bl, groups=samples, scale = "frequency", xlab="Body Length (cm)",breaks="Sturges", col = "darkgray"))
同じ内容をRコマンダーを使わずに書くと,以下の様になる。 Rコマンダーの関数を使用した場合との違いは、書くヒストグラムのタイトル部分で現れてくる。
Hist(DF$bl, groups=DF$samples, scale = "frequency", xlab="Body Length (cm)", breaks="Sturges", col = "darkgray")
一番お勧めなのがこの方法ですが,ggplot2というパッケージの使い方に別途慣れないといけない。興味がある人は自分でググって以下の書き方でどこをどのように指定しているのか読んで比較してみて下さい。 https://stats.biopapyrus.jp/r/ggplot/
library("ggplot2")
ggplot(DF, aes(x=bl, fill=samples))+
geom_histogram() +
labs(x="Body length (cm)", y="Frequency") +
ylim(0,25) +
facet_wrap(~samples, ncol=2)+
theme_bw()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Hist関数のオプションを変更すると、階級幅を”Sturges”の式によって自動設定するのではなく、手動で最小・最大・階級幅を設定することができる。上の「ヒストグラムの描画」で書いたヒストグラムについて,各自で設定方法を調べて140〜200cmの範囲で2cmの階級幅でヒストグラムを描画した。
Hist(DF$bl, groups=DF$samples, scale = "frequency", xlab="Body Length (cm)", breaks=seq(140,190,by=2), col = "darkgray")
“こんてんつこうかい”.Hatena Blog. https://contents-open.hatenablog.com/entry/2021/06/12/222910. 参照日(2022.11/1)
授業の時は、命令をする際に#をつけて作業していたのですが、自分のパソコンでは#をつけると命令が実行されませんでした。ggplot2はインストールされ、チェックもついています。このままでも作業に支障はありませんでしょうか。