2. 第2回 R言語の基礎
2.1. はじめに
R は、数値計算(ベクトルや行列の計算)や、統計解析、機械学習(Machine Learning)、深層学習(Deep Learning)、グラフ描画など、データ解析が得意なプログラミング言語になります。
データ解析の研究者でなくても、実験データなどの統計解析を行う際に最も使用されているプログラミング言語の1つです。
そこで、本講義では学んだ統計処理を、Rで実行するための実習も行っていきます。
このテキストでは、実習に必要な最低限のRの基礎知識を学んでいきます。
より高度な使い方等を知りたい方は、別途学習してみてください。
2.2. 実習に入る前に
本講義では講義資料としてGoogle Colaboratoryで記述されたものを共有しています。
Google Colaboratoryは、web上でプログラミングをおこなことが可能な便利なサービスです。名称からわかるとおり、Google社が提供しているサービスになります。 基本的にPythonを動かすことが多いですが、今回の講義ではRを動かすのに使用しています。
本講義ではGoogle ColaboratoryでRを動かしますが、実際に実験データ等を統計処理する場合には、自分のPCにRを入れて動かすことが多いです。
より実際に近い状況で実習を行いたい場合は、自分のPCにRを入れて動かしていただいても構いませんし、
こちらが提供しているGoogle Colaboratoryで動かしていただいても、どちらでも構いません。
ただし、今後出す予定の課題はGoogle Colaboratoryを使用して提出する必要があるので、使用方法は理解しておいてください。
2.2.1. Rのインストール方法 (自分のPCで動かしたい人向け)
Rを自分のPCに入れて動かしたい人は、下記の手順でRをインストールしてみてください。
R のホームページに行きます。
download Rのページへ移動
適当なミラーサイトを選択( https://cloud.r-project.org/ でOK)
自分のOSのリンク先へ移動
baseをクリックしてインストーラーをダウンロード
ダウンロードしたファイルを開いてあとは指示通りに

また、Rを使う際には、Rstudioという開発環境(Rを使いやすくするツール)を使用することが多いです。
もし、Rを自分のPCに入れて動かす予定の方はRstudioも一緒に入れて使う様にすると良いと思います。
Rstudioのインストールも同じように、
Rstudioのホームページに行きます。
少し下の方にあるInstall Rstudioという所にある、Download RStudio Desktop for XXX(自分のOS)というボタンをクリックしてインストーラーをダウンロード
ダウンロードしたファイルを開いてあとは指示通りに

2.2.2. Google Colaboratoryの使い方 - Rのコードを動かす方法
Google ColaboratoryでRのコードを書いて動かすには、左上にある +コードでコード記述用のセルを追加し、そこにRのコードを書いていきます。

コードセルは左側の三角ボタンを押すか、Shift+Enterで選択中のセル内のコードを動かすことができます。

自分のPCでRを動かしている方はRを起動してコンソールにコードを打ち込み、Enterをすればコードが動きます。
まずは適当な足し算(7 + 8等)を書いてみて動かしてみましょう。
Google Colaboratoryで最初にコードを動かす際には接続するために少し時間がかかります(以降はすぐ実行できます)。
[1]:
7 + 8
引き算(7 - 3)や掛け算(2 * 5)、割り算(78 / 13)なども可能です。
[2]:
7 - 2
[3]:
2 * 5
[4]:
78 / 13
累乗も計算できます。Rで累乗を計算するには^を使います。
例えば2の10乗を計算する場合は2^10になります。
[5]:
2^10
2.3. 関数
次にRで使用可能な関数を使用します。
関数というのは、与えた値に何らかの処理をして結果返してくれるものです。
まずはsqrtという平方根を求めることが出来る関数を使ってみます。
例えば、sqrt(1024)というコードを動かすと、与えられた値1024の平方根32を返す形になります。
[6]:
sqrt(1024)
Rには他にも様々な関数があります。
例えばlogという関数は何らかの値と対数の底の値を与えると、対数を計算してくれます。
log(1024, 2)というコードを動かすと、1024は2の10乗なので、10を返す形になります。
[7]:
log(1024, 2)
2.4. コードとコメント
Rではコードの途中で#を使用することでコメントを記入出来ます。
#以降に記入されたものはコメントとして扱われるため、実行されません。
[8]:
4 + 12 # コメント
# 21 + 24
8 + 70
コードの途中で何かメモをしておいたり、コードの説明を記述する際には#を上手く使ってください。
講義で提示するコードにも、#で説明が加えられていることがありますが、コメントだと認識しておいてください。
2.5. 複数の値をまとめて扱う・変数
Rでは複数の値を1つのベクトルデータとして扱うことができます。
cという関数でデータをまとめることが出来ます。
c(123, 23, 45, 221, 78)
また、Rでは自分で名前を決めた変数にデータを格納しておくことが可能です。
変数名 <- データという形でデータを格納できます。
例えば、上の5つの値をxという変数に格納するには、x <- c(123, 23, 45, 221, 78)となります。
[9]:
x <- c(123, 23, 45, 221, 78)
xに値を一度格納すると、以降はxの中身が格納した値になります。
[10]:
x
- 123
- 23
- 45
- 221
- 78
複数の値に対して適用することが出来る関数があり、
平均値を計算するmean関数、合計値を計算するsum関数などがあります。
[11]:
x <- c(123, 23, 45, 221, 78)
mean(x)
[12]:
# sum関数
sum(x)
summaryという関数はデータの平均値や最大値などの基本的な統計量を計算してくれます。
[13]:
# summry関数
x <- c(12, 23, 32, 18, 19, 20)
summary(x)
Min. 1st Qu. Median Mean 3rd Qu. Max.
12.00 18.25 19.50 20.67 22.25 32.00
Rにはデータの要約や検定など、統計的な処理を行ってくれる関数が充実しているので、
難しい計算を自分でやらなくても手軽にデータの統計処理が出来る様になります。
2.5.1. ベクトルに対する計算・ベクトル同士の計算
ベクトルのすべての要素に対して、ある値を引いたり、かける事が出来ます。
[14]:
x <- c(12, 23, 32, 18, 19, 20)
x - 10
- 2
- 13
- 22
- 8
- 9
- 10
[15]:
# ベクトルかけ算
x * 10
- 120
- 230
- 320
- 180
- 190
- 200
また、ベクトル同士で計算を行うと、
1番目の要素同士、2番目の要素同士、3番目の要素同士…と、各要素ごとに計算が行われます。
[16]:
x <- c(12, 23, 32, 18, 19, 20)
y <- c(10, 20, 30, 40, 50, 60)
x + y
- 22
- 43
- 62
- 58
- 69
- 80
ベクトルを^2で2乗すると、各要素ごとに2乗されることになります。
[17]:
# ベクトルを2乗
x <- c(12, 23, 32, 18, 19, 20)
x^2
- 144
- 529
- 1024
- 324
- 361
- 400
一見、で?となる様な特徴ですが、このベクトル計算が統計手法に登場する計算で役に立ちます。
例えば実験をして10個の観測値\(X_1, X_2, X_3, ... X_{10}\)が得られたとき、その平均値を\(\bar{X}\)とすると、
\(\sum_{i=1}^{10}(X_i - \bar{X})^2\)
みたいな値を今後計算することになります。
実際に\(X_1, X_2, X_3, ... X_{10}\)が\(12, 23, 32, 18, 19, 20,37,28,10,24\)だった場合、
mean関数やsum関数、x^2でxの二乗が計算できることを利用して計算してみると…
[18]:
data <- c(12,23,32,18,19,20,37,28,10,24)
# コード書いて計算してみましょう
diff <- data - mean(data)
sum(diff^2)
また2種類の観測データ\(X_1, X_2, ..., X_{10}\)と\(Y_1, Y_2,... Y_{10}\)が得られたとき、
それぞれの平均値\(\bar{X}, \bar{Y}\)とすると
\(\sum_{i=1}^{10}(X_i - \bar{X})(Y_i - \bar{Y})\)
みたいな計算も必要になります。
\(X_1, X_2, X_3, ... X_{10}\)が\(12, 23, 32, 18, 19, 20, 37,28,10,24\)
\(Y_1, Y_2, Y_3, ... Y_{10}\)が\(102, 240, 289, 156, 188, 201, 222, 278, 98, 232\)だった場合、
[19]:
x <- c(12,23,32,18,19,20,37,28,10,24)
y <- c(102,240,289,156,188,201,222,278,98,232)
# コード書いて計算してみましょう
x_diff <- x - mean(x)
y_diff <- y - mean(y)
sum(x_diff * y_diff)
この様な形で、統計手法の計算ではそれぞれの観測値ごとに何らかの計算をする場面が多く出てきます。
その際にRのベクトルの各要素ごとに計算する仕組みが役立ちます。
2.6. CSVファイル等の外部データを読み込む
ここまでは数値データ等を自分で打ち込んできましたが、既存のファイル等からデータを読み込むことも可能です。
ここではデータを保存しておく形式として最もポピュラーなものの1つのCSV形式のファイルを読み込みます。
CSVファイルは、CSV(Comma-Separated Values)の通り、カンマ(,)でデータを区切って保存したファイルです。Excelでも読み込むことが出来るのでよく用いられています。

CSVファイルを読み込むための関数read.csvという関数があります。
今回はGoogle Colaboratoryにもともと置いてあるサンプルファイルを読み込んでみます。
read.csv("CSVファイルの名前/URL等")
[20]:
read.csv("sample_data/california_housing_test.csv")
| longitude | latitude | housing_median_age | total_rooms | total_bedrooms | population | households | median_income | median_house_value |
|---|---|---|---|---|---|---|---|---|
| <dbl> | <dbl> | <dbl> | <dbl> | <dbl> | <dbl> | <dbl> | <dbl> | <dbl> |
| -122.05 | 37.37 | 27 | 3885 | 661 | 1537 | 606 | 6.6085 | 344700 |
| -118.30 | 34.26 | 43 | 1510 | 310 | 809 | 277 | 3.5990 | 176500 |
| -117.81 | 33.78 | 27 | 3589 | 507 | 1484 | 495 | 5.7934 | 270500 |
| -118.36 | 33.82 | 28 | 67 | 15 | 49 | 11 | 6.1359 | 330000 |
| -119.67 | 36.33 | 19 | 1241 | 244 | 850 | 237 | 2.9375 | 81700 |
| -119.56 | 36.51 | 37 | 1018 | 213 | 663 | 204 | 1.6635 | 67000 |
| -121.43 | 38.63 | 43 | 1009 | 225 | 604 | 218 | 1.6641 | 67000 |
| -120.65 | 35.48 | 19 | 2310 | 471 | 1341 | 441 | 3.2250 | 166900 |
| -122.84 | 38.40 | 15 | 3080 | 617 | 1446 | 599 | 3.6696 | 194400 |
| -118.02 | 34.08 | 31 | 2402 | 632 | 2830 | 603 | 2.3333 | 164200 |
| -118.24 | 33.98 | 45 | 972 | 249 | 1288 | 261 | 2.2054 | 125000 |
| -119.12 | 35.85 | 37 | 736 | 166 | 564 | 138 | 2.4167 | 58300 |
| -121.93 | 37.25 | 36 | 1089 | 182 | 535 | 170 | 4.6900 | 252600 |
| -117.03 | 32.97 | 16 | 3936 | 694 | 1935 | 659 | 4.5625 | 231200 |
| -117.97 | 33.73 | 27 | 2097 | 325 | 1217 | 331 | 5.7121 | 222500 |
| -117.99 | 33.81 | 42 | 161 | 40 | 157 | 50 | 2.2000 | 153100 |
| -120.81 | 37.53 | 15 | 570 | 123 | 189 | 107 | 1.8750 | 181300 |
| -121.20 | 38.69 | 26 | 3077 | 607 | 1603 | 595 | 2.7174 | 137500 |
| -118.88 | 34.21 | 26 | 1590 | 196 | 654 | 199 | 6.5851 | 300000 |
| -122.59 | 38.01 | 35 | 8814 | 1307 | 3450 | 1258 | 6.1724 | 414300 |
| -122.15 | 37.75 | 40 | 1445 | 256 | 849 | 255 | 3.8913 | 126300 |
| -121.37 | 38.68 | 36 | 1775 | 296 | 937 | 305 | 3.1786 | 83400 |
| -118.16 | 34.07 | 47 | 2994 | 543 | 1651 | 561 | 3.8644 | 241500 |
| -122.20 | 37.79 | 45 | 2021 | 528 | 1410 | 480 | 2.7788 | 115400 |
| -117.28 | 33.28 | 13 | 6131 | 1040 | 4049 | 940 | 3.8156 | 150700 |
| -118.03 | 34.16 | 36 | 1401 | 218 | 667 | 225 | 7.1615 | 484700 |
| -122.42 | 37.76 | 52 | 3587 | 1030 | 2259 | 979 | 2.5403 | 250000 |
| -118.39 | 33.99 | 32 | 2612 | 418 | 1030 | 402 | 6.6030 | 369200 |
| -118.45 | 34.07 | 19 | 4845 | 1609 | 3751 | 1539 | 1.5830 | 350000 |
| -118.48 | 34.01 | 30 | 3078 | 954 | 1561 | 901 | 3.4852 | 425000 |
| ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ |
| -122.47 | 37.77 | 52 | 2241 | 443 | 1042 | 377 | 4.1635 | 398400 |
| -120.93 | 35.76 | 11 | 8997 | 1698 | 1825 | 756 | 3.2300 | 154300 |
| -118.14 | 34.17 | 52 | 2667 | 486 | 1681 | 504 | 4.0524 | 173100 |
| -122.73 | 38.46 | 14 | 4042 | 1298 | 2323 | 1158 | 2.0651 | 135400 |
| -117.06 | 32.76 | 37 | 2356 | 476 | 1231 | 499 | 2.9650 | 155700 |
| -120.71 | 35.50 | 12 | 3098 | 453 | 1433 | 434 | 5.2508 | 292900 |
| -118.31 | 34.05 | 35 | 1692 | 423 | 1578 | 406 | 2.5313 | 305800 |
| -119.70 | 36.75 | 11 | 3626 | 779 | 1819 | 731 | 2.4956 | 87500 |
| -121.34 | 38.64 | 17 | 2761 | 501 | 1128 | 482 | 3.7562 | 139700 |
| -117.91 | 34.09 | 20 | 4327 | 1037 | 2296 | 963 | 3.0441 | 185400 |
| -119.76 | 36.79 | 32 | 2463 | 468 | 1261 | 486 | 3.3281 | 75100 |
| -120.66 | 35.49 | 17 | 4422 | 945 | 2307 | 885 | 2.8285 | 171300 |
| -118.28 | 34.08 | 42 | 1618 | 522 | 1454 | 440 | 3.1607 | 182000 |
| -122.54 | 37.90 | 48 | 2491 | 460 | 937 | 455 | 4.4375 | 370000 |
| -117.59 | 33.88 | 13 | 3239 | 849 | 2751 | 813 | 2.6111 | 107000 |
| -120.47 | 34.94 | 17 | 1368 | 308 | 642 | 303 | 1.8633 | 109400 |
| -118.25 | 33.93 | 42 | 819 | 233 | 899 | 228 | 1.1346 | 85400 |
| -121.97 | 37.29 | 25 | 4096 | 743 | 2027 | 741 | 5.3294 | 300300 |
| -122.01 | 36.97 | 43 | 2162 | 509 | 1208 | 464 | 2.5417 | 260900 |
| -122.02 | 37.60 | 32 | 1295 | 295 | 1097 | 328 | 3.2386 | 149600 |
| -118.23 | 34.09 | 49 | 1638 | 456 | 1500 | 430 | 2.6923 | 150000 |
| -117.17 | 34.28 | 13 | 4867 | 718 | 780 | 250 | 7.1997 | 253800 |
| -122.33 | 37.39 | 52 | 573 | 102 | 232 | 92 | 6.2263 | 500001 |
| -117.91 | 33.60 | 37 | 2088 | 510 | 673 | 390 | 5.1048 | 500001 |
| -117.93 | 33.86 | 35 | 931 | 181 | 516 | 174 | 5.5867 | 182500 |
| -119.86 | 34.42 | 23 | 1450 | 642 | 1258 | 607 | 1.1790 | 225000 |
| -118.14 | 34.06 | 27 | 5257 | 1082 | 3496 | 1036 | 3.3906 | 237200 |
| -119.70 | 36.30 | 10 | 956 | 201 | 693 | 220 | 2.2895 | 62000 |
| -117.12 | 34.10 | 40 | 96 | 14 | 46 | 14 | 3.2708 | 162500 |
| -119.63 | 34.42 | 42 | 1765 | 263 | 753 | 260 | 8.5608 | 500001 |
2.6.1. Google Colaboratoryで使用できるファイルについて
Google Colaboratoryで自分のデータを扱いたい場合、Google Colaboratoryにファイルをアップロードする必要があります。
左端のメニューからフォルダマークを選び、アップロードボタンからファイルをアップロードします。
ドラッグ&ドロップでもアップロード可能です。

ここから使用したいファイルをアップロードすることで、Google Colaboratory上で扱うことが出来る様になります。
下記リンク先を右クリックから名前を付けて保存し、左端のメニューからアップロードしてください。
(※右クリックで名前を付けてリンク先を保存しようとすると、
ファイル名がengland-premier-league-players-2018-to-2019-stats.txtになる場合があります)
england-premier-league-players-2018-to-2019-stats.csv
アップロードした後、read.csv関数で読み込んでみてください。
[21]:
# アップロードしたファイル名
read.csv("england-premier-league-players-2018-to-2019-stats.csv")
| full_name | age | birthday | birthday_GMT | league | season | position | Current.Club | minutes_played_overall | minutes_played_home | ⋯ | conceded_per_90_overall | min_per_conceded_overall | min_per_match | min_per_card_overall | min_per_assist_overall | cards_per_90_overall | rank_in_league_top_attackers | rank_in_league_top_midfielders | rank_in_league_top_defenders | rank_in_club_top_scorer |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| <chr> | <int> | <int> | <chr> | <chr> | <chr> | <chr> | <chr> | <int> | <int> | ⋯ | <dbl> | <int> | <int> | <int> | <int> | <dbl> | <int> | <int> | <int> | <int> |
| Aaron Cresswell | 31 | 629683200 | 1989/12/15 | Premier League | 2018/2019 | Defender | West Ham United | 1589 | 888 | ⋯ | 1.25 | 72 | 79 | 1589 | 1589 | 0.06 | 290 | 191 | 80 | 20 |
| Aaron Lennon | 33 | 545529600 | 1987/04/16 | Premier League | 2018/2019 | Midfielder | Burnley | 1217 | 487 | ⋯ | 1.48 | 61 | 76 | 1217 | 1217 | 0.07 | 196 | 187 | -1 | 10 |
| Aaron Mooy | 30 | 653356800 | 1990/09/15 | Premier League | 2018/2019 | Midfielder | Huddersfield Town | 2327 | 1190 | ⋯ | 1.78 | 51 | 80 | 582 | 2327 | 0.15 | 144 | 233 | -1 | 3 |
| Aaron Ramsey | 30 | 662169600 | 1990/12/26 | Premier League | 2018/2019 | Midfielder | Arsenal | 1327 | 689 | ⋯ | 0.81 | 111 | 47 | 0 | 221 | 0.00 | 69 | 8 | -1 | 5 |
| Aaron Rowe | 20 | 968284800 | 2000/09/07 | Premier League | 2018/2019 | Forward | Huddersfield Town | 69 | 14 | ⋯ | 1.30 | 69 | 35 | 0 | 0 | 0.00 | -1 | -1 | -1 | 31 |
| Aaron Wan-Bissaka | 23 | 880502400 | 1997/11/26 | Premier League | 2018/2019 | Midfielder | Crystal Palace | 3135 | 1605 | ⋯ | 1.18 | 76 | 90 | 523 | 1045 | 0.17 | 312 | 160 | -1 | 22 |
| Abdelhamid Sabiri | 24 | 849139200 | 1996/11/28 | Premier League | 2018/2019 | Midfielder | Huddersfield Town | 49 | 0 | ⋯ | 5.51 | 16 | 25 | 0 | 0 | 0.00 | -1 | -1 | -1 | 22 |
| Abdoulaye Doucouré | 28 | 725846400 | 1993/01/01 | Premier League | 2018/2019 | Midfielder | Watford | 3062 | 1566 | ⋯ | 1.59 | 57 | 87 | 437 | 510 | 0.21 | 124 | 80 | -1 | 5 |
| Aboubakar Kamara | 26 | 794534400 | 1995/03/07 | Premier League | 2018/2019 | Forward | Fulham | 687 | 468 | ⋯ | 2.10 | 43 | 53 | 344 | 0 | 0.26 | 38 | 412 | -1 | 4 |
| Adalberto Peñaranda Maestre | 23 | 865036800 | 1997/05/31 | Premier League | 2018/2019 | Forward | Watford | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| Adam David Lallana | 32 | 579225600 | 1988/05/10 | Premier League | 2018/2019 | Midfielder | Liverpool | 465 | 189 | ⋯ | 0.39 | 233 | 36 | 465 | 0 | 0.19 | 379 | 344 | -1 | 18 |
| Adam Masina | 27 | 757468800 | 1994/01/02 | Premier League | 2018/2019 | Defender | Watford | 1003 | 463 | ⋯ | 1.70 | 53 | 72 | 201 | 1003 | 0.45 | 397 | 155 | 144 | 20 |
| Adam Smith | 29 | 672883200 | 1991/04/29 | Premier League | 2018/2019 | Defender | AFC Bournemouth | 2073 | 1051 | ⋯ | 1.30 | 69 | 83 | 296 | 2073 | 0.30 | 227 | 228 | 85 | 10 |
| Adama Diakhaby | 24 | 836524800 | 1996/07/05 | Premier League | 2018/2019 | Forward | Huddersfield Town | 551 | 345 | ⋯ | 2.61 | 34 | 46 | 551 | 0 | 0.16 | 332 | 359 | -1 | 26 |
| Adama Traoré Diarra | 25 | 822528000 | 1996/01/25 | Premier League | 2018/2019 | Midfielder | Wolverhampton Wanderers | 890 | 315 | ⋯ | 1.11 | 81 | 31 | 890 | 890 | 0.10 | 160 | 152 | -1 | 13 |
| Ademola Lookman | 23 | 877305600 | 1997/10/20 | Premier League | 2018/2019 | Forward | Everton | 601 | 334 | ⋯ | 1.05 | 86 | 29 | 0 | 301 | 0.00 | 292 | 20 | -1 | 17 |
| Adrian Mariappa | 34 | 528681600 | 1986/10/03 | Premier League | 2018/2019 | Defender | Watford | 1921 | 841 | ⋯ | 1.36 | 66 | 74 | 640 | 0 | 0.14 | 396 | 414 | 94 | 21 |
| Adrián San Miguel del Castillo | 34 | 536630400 | 1987/01/03 | Premier League | 2018/2019 | Goalkeeper | West Ham United | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| Adrien Sebastian Perruchet Silva | 32 | 605923200 | 1989/03/15 | Premier League | 2018/2019 | Midfielder | Leicester City | 88 | 8 | ⋯ | 1.02 | 88 | 44 | 0 | 0 | 0.00 | -1 | -1 | -1 | 15 |
| Ainsley Maitland-Niles | 23 | 872812800 | 1997/08/29 | Premier League | 2018/2019 | Midfielder | Arsenal | 985 | 462 | ⋯ | 1.46 | 62 | 62 | 328 | 985 | 0.27 | 174 | 167 | -1 | 15 |
| Alberto Moreno | 28 | 710294400 | 1992/07/05 | Premier League | 2018/2019 | Defender | Liverpool | 155 | 90 | ⋯ | 1.16 | 78 | 78 | 0 | 0 | 0.00 | -1 | -1 | -1 | 17 |
| Aleksandar Mitrović | 26 | 779673600 | 1994/09/16 | Premier League | 2018/2019 | Forward | Fulham | 3282 | 1616 | ⋯ | 2.03 | 44 | 89 | 469 | 1094 | 0.19 | 62 | 176 | -1 | 1 |
| Alex Iwobi | 24 | 831081600 | 1996/05/03 | Premier League | 2018/2019 | Forward | Arsenal | 1972 | 742 | ⋯ | 1.41 | 64 | 56 | 0 | 329 | 0.00 | 128 | 31 | -1 | 8 |
| Alex McCarthy | 31 | 628646400 | 1989/12/03 | Premier League | 2018/2019 | Goalkeeper | Southampton | 2250 | 1170 | ⋯ | 1.48 | 61 | 90 | 2250 | 0 | 0.04 | 372 | 365 | 114 | 21 |
| Alex Oxlade-Chamberlain | 27 | 745372800 | 1993/08/15 | Premier League | 2018/2019 | Midfielder | Liverpool | 19 | 19 | ⋯ | 0.00 | 0 | 10 | 0 | 0 | 0.00 | -1 | -1 | -1 | 21 |
| Alex Pritchard | 27 | 736387200 | 1993/05/03 | Premier League | 2018/2019 | Midfielder | Huddersfield Town | 2092 | 992 | ⋯ | 1.68 | 54 | 70 | 1046 | 0 | 0.09 | 171 | 373 | -1 | 5 |
| Alex Smithies | 31 | 636595200 | 1990/03/05 | Premier League | 2018/2019 | Goalkeeper | Cardiff City | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| Alexander Sørloth | 25 | 818121600 | 1995/12/05 | Premier League | 2018/2019 | Forward | Crystal Palace | 173 | 121 | ⋯ | 0.52 | 173 | 14 | 0 | 0 | 0.00 | -1 | -1 | -1 | 17 |
| Alexandre Lacazette | 29 | 675388800 | 1991/05/28 | Premier League | 2018/2019 | Forward | Arsenal | 2503 | 1403 | ⋯ | 1.01 | 89 | 72 | 1252 | 313 | 0.07 | 21 | 25 | -1 | 2 |
| Alexandre Nascimento Costa Silva | 24 | 858470400 | 1997/03/16 | Premier League | 2018/2019 | Forward | West Ham United | 17 | 0 | ⋯ | 0.00 | 0 | 17 | 0 | 0 | 0.00 | -1 | -1 | -1 | 16 |
| ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋱ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ |
| Tyreke Johnson | 22 | 910051200 | 1998/11/03 | Premier League | 2018/2019 | Defender | Southampton | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| Tyrone Mings | 28 | 731980800 | 1993/03/13 | Premier League | 2018/2019 | Defender | AFC Bournemouth | 141 | 7 | ⋯ | 2.55 | 35 | 28 | 0 | 0 | 0.00 | -1 | -1 | -1 | 23 |
| Vicente Guaita | 34 | 537235200 | 1987/01/10 | Premier League | 2018/2019 | Goalkeeper | Crystal Palace | 1755 | 1035 | ⋯ | 1.08 | 84 | 88 | 878 | 0 | 0.10 | 325 | 352 | 45 | 19 |
| Vicente Iborra De La Fuente | 33 | 569289600 | 1988/01/16 | Premier League | 2018/2019 | Midfielder | Leicester City | 226 | 152 | ⋯ | 1.59 | 57 | 28 | 0 | 0 | 0.00 | -1 | -1 | -1 | 14 |
| Víctor Camarasa | 26 | 770083200 | 1994/05/28 | Premier League | 2018/2019 | Midfielder | Cardiff City | 2579 | 1267 | ⋯ | 1.68 | 54 | 81 | 430 | 645 | 0.21 | 111 | 106 | -1 | 1 |
| Victor Moses | 30 | 660960000 | 1990/12/12 | Premier League | 2018/2019 | Midfielder | Chelsea | 26 | 17 | ⋯ | 3.46 | 26 | 13 | 0 | 0 | 0.00 | -1 | -1 | -1 | 23 |
| Victor Nilsson Lindelöf | 26 | 774403200 | 1994/07/17 | Premier League | 2018/2019 | Defender | Manchester United | 2602 | 1112 | ⋯ | 1.31 | 68 | 87 | 2602 | 2602 | 0.03 | 263 | 246 | 88 | 14 |
| Victor Wanyama | 29 | 677808000 | 1991/06/25 | Premier League | 2018/2019 | Midfielder | Tottenham Hotspur | 509 | 302 | ⋯ | 0.53 | 170 | 39 | 255 | 0 | 0.35 | 106 | 266 | -1 | 11 |
| Viktor Gyökeres | 22 | 896918400 | 1998/06/04 | Premier League | 2018/2019 | Forward | Brighton & Hove Albion | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| Vincent Janssen | 26 | 771638400 | 1994/06/15 | Premier League | 2018/2019 | Forward | Tottenham Hotspur | 36 | 36 | ⋯ | 0.00 | 0 | 12 | 0 | 0 | 0.00 | -1 | -1 | -1 | 28 |
| Vincent Kompany | 34 | 513475200 | 1986/04/10 | Premier League | 2018/2019 | Defender | Manchester City | 1223 | 561 | ⋯ | 0.52 | 175 | 72 | 204 | 0 | 0.44 | 194 | 384 | 7 | 12 |
| Virgil van Dijk | 29 | 678931200 | 1991/07/08 | Premier League | 2018/2019 | Defender | Liverpool | 3385 | 1675 | ⋯ | 0.51 | 178 | 89 | 3385 | 1693 | 0.03 | 152 | 201 | 5 | 6 |
| Wayne Hennessey | 34 | 538444800 | 1987/01/24 | Premier League | 2018/2019 | Goalkeeper | Crystal Palace | 1575 | 675 | ⋯ | 1.31 | 68 | 88 | 0 | 0 | 0.00 | 321 | 404 | 87 | 13 |
| Wes Morgan | 37 | 443491200 | 1984/01/21 | Premier League | 2018/2019 | Defender | Leicester City | 1926 | 783 | ⋯ | 1.12 | 80 | 88 | 385 | 0 | 0.23 | 125 | 300 | 48 | 6 |
| Wesley Hoedt | 27 | 762912000 | 1994/03/06 | Premier League | 2018/2019 | Defender | Southampton | 1170 | 540 | ⋯ | 1.54 | 59 | 90 | 585 | 0 | 0.15 | 374 | 370 | 123 | 27 |
| Wilfredo Daniel Caballero | 39 | 370483200 | 1981/09/28 | Premier League | 2018/2019 | Goalkeeper | Chelsea | 180 | 90 | ⋯ | 0.00 | 0 | 90 | 0 | 0 | 0.00 | -1 | -1 | -1 | 19 |
| Wilfried Zaha | 28 | 721353600 | 1992/11/10 | Premier League | 2018/2019 | Midfielder | Crystal Palace | 3041 | 1347 | ⋯ | 1.33 | 68 | 89 | 304 | 608 | 0.30 | 63 | 92 | -1 | 2 |
| Will Hughes | 25 | 798076800 | 1995/04/17 | Premier League | 2018/2019 | Midfielder | Watford | 2436 | 1251 | ⋯ | 1.44 | 62 | 76 | 487 | 609 | 0.18 | 199 | 91 | -1 | 8 |
| Will Norris | 27 | 745113600 | 1993/08/12 | Premier League | 2018/2019 | Goalkeeper | Wolverhampton Wanderers | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| Willian | 32 | 587088000 | 1988/08/09 | Premier League | 2018/2019 | Forward | Chelsea | 2108 | 833 | ⋯ | 0.98 | 92 | 66 | 1054 | 351 | 0.09 | 132 | 36 | -1 | 8 |
| Willy Boly | 30 | 665539200 | 1991/02/03 | Premier League | 2018/2019 | Defender | Wolverhampton Wanderers | 3169 | 1530 | ⋯ | 1.08 | 83 | 88 | 792 | 0 | 0.11 | 148 | 312 | 43 | 4 |
| Xherdan Shaqiri | 29 | 687052800 | 1991/10/10 | Premier League | 2018/2019 | Midfielder | Liverpool | 1058 | 538 | ⋯ | 0.43 | 212 | 44 | 529 | 353 | 0.17 | 15 | 39 | -1 | 4 |
| Yann Valery | 22 | 919641600 | 1999/02/22 | Premier League | 2018/2019 | Defender | Southampton | 1715 | 1070 | ⋯ | 1.36 | 66 | 75 | 343 | 1715 | 0.26 | 162 | 214 | 95 | 7 |
| Yerry Fernando Mina González | 26 | 780278400 | 1994/09/23 | Premier League | 2018/2019 | Defender | Everton | 890 | 360 | ⋯ | 1.21 | 74 | 68 | 297 | 0 | 0.30 | 161 | 329 | 67 | 9 |
| Yoshinori Muto | 28 | 711158400 | 1992/07/15 | Premier League | 2018/2019 | Forward | Newcastle United | 516 | 180 | ⋯ | 1.74 | 52 | 30 | 516 | 0 | 0.17 | 113 | 290 | -1 | 8 |
| Youri Tielemans | 23 | 862963200 | 1997/05/07 | Premier League | 2018/2019 | Midfielder | Leicester City | 1092 | 575 | ⋯ | 1.07 | 84 | 84 | 546 | 273 | 0.16 | 80 | 13 | -1 | 4 |
| Yves Bissouma | 24 | 841363200 | 1996/08/30 | Premier League | 2018/2019 | Midfielder | Brighton & Hove Albion | 1769 | 747 | ⋯ | 1.53 | 59 | 63 | 354 | 0 | 0.25 | 402 | 293 | -1 | 17 |
| Zechariah Medley | 20 | 962928000 | 2000/07/07 | Premier League | 2018/2019 | Defender | Arsenal | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| Zeze Steven Sessegnon | 20 | 958608000 | 2000/05/18 | Premier League | 2018/2019 | Defender | Fulham | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| Łukasz Fabiański | 35 | 482630400 | 1985/04/18 | Premier League | 2018/2019 | Goalkeeper | West Ham United | 3420 | 1710 | ⋯ | 1.26 | 71 | 90 | 0 | 0 | 0.00 | 391 | 343 | 81 | 19 |
Web上でアクセス出来るCSVファイルであれば、ダウンロードせずに直接URLから読み込むこともできます。
[22]:
read.csv("https://raw.githubusercontent.com/slt666666/basic_fri_2024/refs/heads/master/source/_static/data/england-premier-league-players-2018-to-2019-stats.csv")
| full_name | age | birthday | birthday_GMT | league | season | position | Current.Club | minutes_played_overall | minutes_played_home | ⋯ | conceded_per_90_overall | min_per_conceded_overall | min_per_match | min_per_card_overall | min_per_assist_overall | cards_per_90_overall | rank_in_league_top_attackers | rank_in_league_top_midfielders | rank_in_league_top_defenders | rank_in_club_top_scorer |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| <chr> | <int> | <int> | <chr> | <chr> | <chr> | <chr> | <chr> | <int> | <int> | ⋯ | <dbl> | <int> | <int> | <int> | <int> | <dbl> | <int> | <int> | <int> | <int> |
| Aaron Cresswell | 31 | 629683200 | 1989/12/15 | Premier League | 2018/2019 | Defender | West Ham United | 1589 | 888 | ⋯ | 1.25 | 72 | 79 | 1589 | 1589 | 0.06 | 290 | 191 | 80 | 20 |
| Aaron Lennon | 33 | 545529600 | 1987/04/16 | Premier League | 2018/2019 | Midfielder | Burnley | 1217 | 487 | ⋯ | 1.48 | 61 | 76 | 1217 | 1217 | 0.07 | 196 | 187 | -1 | 10 |
| Aaron Mooy | 30 | 653356800 | 1990/09/15 | Premier League | 2018/2019 | Midfielder | Huddersfield Town | 2327 | 1190 | ⋯ | 1.78 | 51 | 80 | 582 | 2327 | 0.15 | 144 | 233 | -1 | 3 |
| Aaron Ramsey | 30 | 662169600 | 1990/12/26 | Premier League | 2018/2019 | Midfielder | Arsenal | 1327 | 689 | ⋯ | 0.81 | 111 | 47 | 0 | 221 | 0.00 | 69 | 8 | -1 | 5 |
| Aaron Rowe | 20 | 968284800 | 2000/09/07 | Premier League | 2018/2019 | Forward | Huddersfield Town | 69 | 14 | ⋯ | 1.30 | 69 | 35 | 0 | 0 | 0.00 | -1 | -1 | -1 | 31 |
| Aaron Wan-Bissaka | 23 | 880502400 | 1997/11/26 | Premier League | 2018/2019 | Midfielder | Crystal Palace | 3135 | 1605 | ⋯ | 1.18 | 76 | 90 | 523 | 1045 | 0.17 | 312 | 160 | -1 | 22 |
| Abdelhamid Sabiri | 24 | 849139200 | 1996/11/28 | Premier League | 2018/2019 | Midfielder | Huddersfield Town | 49 | 0 | ⋯ | 5.51 | 16 | 25 | 0 | 0 | 0.00 | -1 | -1 | -1 | 22 |
| Abdoulaye Doucouré | 28 | 725846400 | 1993/01/01 | Premier League | 2018/2019 | Midfielder | Watford | 3062 | 1566 | ⋯ | 1.59 | 57 | 87 | 437 | 510 | 0.21 | 124 | 80 | -1 | 5 |
| Aboubakar Kamara | 26 | 794534400 | 1995/03/07 | Premier League | 2018/2019 | Forward | Fulham | 687 | 468 | ⋯ | 2.10 | 43 | 53 | 344 | 0 | 0.26 | 38 | 412 | -1 | 4 |
| Adalberto Peñaranda Maestre | 23 | 865036800 | 1997/05/31 | Premier League | 2018/2019 | Forward | Watford | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| Adam David Lallana | 32 | 579225600 | 1988/05/10 | Premier League | 2018/2019 | Midfielder | Liverpool | 465 | 189 | ⋯ | 0.39 | 233 | 36 | 465 | 0 | 0.19 | 379 | 344 | -1 | 18 |
| Adam Masina | 27 | 757468800 | 1994/01/02 | Premier League | 2018/2019 | Defender | Watford | 1003 | 463 | ⋯ | 1.70 | 53 | 72 | 201 | 1003 | 0.45 | 397 | 155 | 144 | 20 |
| Adam Smith | 29 | 672883200 | 1991/04/29 | Premier League | 2018/2019 | Defender | AFC Bournemouth | 2073 | 1051 | ⋯ | 1.30 | 69 | 83 | 296 | 2073 | 0.30 | 227 | 228 | 85 | 10 |
| Adama Diakhaby | 24 | 836524800 | 1996/07/05 | Premier League | 2018/2019 | Forward | Huddersfield Town | 551 | 345 | ⋯ | 2.61 | 34 | 46 | 551 | 0 | 0.16 | 332 | 359 | -1 | 26 |
| Adama Traoré Diarra | 25 | 822528000 | 1996/01/25 | Premier League | 2018/2019 | Midfielder | Wolverhampton Wanderers | 890 | 315 | ⋯ | 1.11 | 81 | 31 | 890 | 890 | 0.10 | 160 | 152 | -1 | 13 |
| Ademola Lookman | 23 | 877305600 | 1997/10/20 | Premier League | 2018/2019 | Forward | Everton | 601 | 334 | ⋯ | 1.05 | 86 | 29 | 0 | 301 | 0.00 | 292 | 20 | -1 | 17 |
| Adrian Mariappa | 34 | 528681600 | 1986/10/03 | Premier League | 2018/2019 | Defender | Watford | 1921 | 841 | ⋯ | 1.36 | 66 | 74 | 640 | 0 | 0.14 | 396 | 414 | 94 | 21 |
| Adrián San Miguel del Castillo | 34 | 536630400 | 1987/01/03 | Premier League | 2018/2019 | Goalkeeper | West Ham United | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| Adrien Sebastian Perruchet Silva | 32 | 605923200 | 1989/03/15 | Premier League | 2018/2019 | Midfielder | Leicester City | 88 | 8 | ⋯ | 1.02 | 88 | 44 | 0 | 0 | 0.00 | -1 | -1 | -1 | 15 |
| Ainsley Maitland-Niles | 23 | 872812800 | 1997/08/29 | Premier League | 2018/2019 | Midfielder | Arsenal | 985 | 462 | ⋯ | 1.46 | 62 | 62 | 328 | 985 | 0.27 | 174 | 167 | -1 | 15 |
| Alberto Moreno | 28 | 710294400 | 1992/07/05 | Premier League | 2018/2019 | Defender | Liverpool | 155 | 90 | ⋯ | 1.16 | 78 | 78 | 0 | 0 | 0.00 | -1 | -1 | -1 | 17 |
| Aleksandar Mitrović | 26 | 779673600 | 1994/09/16 | Premier League | 2018/2019 | Forward | Fulham | 3282 | 1616 | ⋯ | 2.03 | 44 | 89 | 469 | 1094 | 0.19 | 62 | 176 | -1 | 1 |
| Alex Iwobi | 24 | 831081600 | 1996/05/03 | Premier League | 2018/2019 | Forward | Arsenal | 1972 | 742 | ⋯ | 1.41 | 64 | 56 | 0 | 329 | 0.00 | 128 | 31 | -1 | 8 |
| Alex McCarthy | 31 | 628646400 | 1989/12/03 | Premier League | 2018/2019 | Goalkeeper | Southampton | 2250 | 1170 | ⋯ | 1.48 | 61 | 90 | 2250 | 0 | 0.04 | 372 | 365 | 114 | 21 |
| Alex Oxlade-Chamberlain | 27 | 745372800 | 1993/08/15 | Premier League | 2018/2019 | Midfielder | Liverpool | 19 | 19 | ⋯ | 0.00 | 0 | 10 | 0 | 0 | 0.00 | -1 | -1 | -1 | 21 |
| Alex Pritchard | 27 | 736387200 | 1993/05/03 | Premier League | 2018/2019 | Midfielder | Huddersfield Town | 2092 | 992 | ⋯ | 1.68 | 54 | 70 | 1046 | 0 | 0.09 | 171 | 373 | -1 | 5 |
| Alex Smithies | 31 | 636595200 | 1990/03/05 | Premier League | 2018/2019 | Goalkeeper | Cardiff City | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| Alexander Sørloth | 25 | 818121600 | 1995/12/05 | Premier League | 2018/2019 | Forward | Crystal Palace | 173 | 121 | ⋯ | 0.52 | 173 | 14 | 0 | 0 | 0.00 | -1 | -1 | -1 | 17 |
| Alexandre Lacazette | 29 | 675388800 | 1991/05/28 | Premier League | 2018/2019 | Forward | Arsenal | 2503 | 1403 | ⋯ | 1.01 | 89 | 72 | 1252 | 313 | 0.07 | 21 | 25 | -1 | 2 |
| Alexandre Nascimento Costa Silva | 24 | 858470400 | 1997/03/16 | Premier League | 2018/2019 | Forward | West Ham United | 17 | 0 | ⋯ | 0.00 | 0 | 17 | 0 | 0 | 0.00 | -1 | -1 | -1 | 16 |
| ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋱ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ |
| Tyreke Johnson | 22 | 910051200 | 1998/11/03 | Premier League | 2018/2019 | Defender | Southampton | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| Tyrone Mings | 28 | 731980800 | 1993/03/13 | Premier League | 2018/2019 | Defender | AFC Bournemouth | 141 | 7 | ⋯ | 2.55 | 35 | 28 | 0 | 0 | 0.00 | -1 | -1 | -1 | 23 |
| Vicente Guaita | 34 | 537235200 | 1987/01/10 | Premier League | 2018/2019 | Goalkeeper | Crystal Palace | 1755 | 1035 | ⋯ | 1.08 | 84 | 88 | 878 | 0 | 0.10 | 325 | 352 | 45 | 19 |
| Vicente Iborra De La Fuente | 33 | 569289600 | 1988/01/16 | Premier League | 2018/2019 | Midfielder | Leicester City | 226 | 152 | ⋯ | 1.59 | 57 | 28 | 0 | 0 | 0.00 | -1 | -1 | -1 | 14 |
| Víctor Camarasa | 26 | 770083200 | 1994/05/28 | Premier League | 2018/2019 | Midfielder | Cardiff City | 2579 | 1267 | ⋯ | 1.68 | 54 | 81 | 430 | 645 | 0.21 | 111 | 106 | -1 | 1 |
| Victor Moses | 30 | 660960000 | 1990/12/12 | Premier League | 2018/2019 | Midfielder | Chelsea | 26 | 17 | ⋯ | 3.46 | 26 | 13 | 0 | 0 | 0.00 | -1 | -1 | -1 | 23 |
| Victor Nilsson Lindelöf | 26 | 774403200 | 1994/07/17 | Premier League | 2018/2019 | Defender | Manchester United | 2602 | 1112 | ⋯ | 1.31 | 68 | 87 | 2602 | 2602 | 0.03 | 263 | 246 | 88 | 14 |
| Victor Wanyama | 29 | 677808000 | 1991/06/25 | Premier League | 2018/2019 | Midfielder | Tottenham Hotspur | 509 | 302 | ⋯ | 0.53 | 170 | 39 | 255 | 0 | 0.35 | 106 | 266 | -1 | 11 |
| Viktor Gyökeres | 22 | 896918400 | 1998/06/04 | Premier League | 2018/2019 | Forward | Brighton & Hove Albion | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| Vincent Janssen | 26 | 771638400 | 1994/06/15 | Premier League | 2018/2019 | Forward | Tottenham Hotspur | 36 | 36 | ⋯ | 0.00 | 0 | 12 | 0 | 0 | 0.00 | -1 | -1 | -1 | 28 |
| Vincent Kompany | 34 | 513475200 | 1986/04/10 | Premier League | 2018/2019 | Defender | Manchester City | 1223 | 561 | ⋯ | 0.52 | 175 | 72 | 204 | 0 | 0.44 | 194 | 384 | 7 | 12 |
| Virgil van Dijk | 29 | 678931200 | 1991/07/08 | Premier League | 2018/2019 | Defender | Liverpool | 3385 | 1675 | ⋯ | 0.51 | 178 | 89 | 3385 | 1693 | 0.03 | 152 | 201 | 5 | 6 |
| Wayne Hennessey | 34 | 538444800 | 1987/01/24 | Premier League | 2018/2019 | Goalkeeper | Crystal Palace | 1575 | 675 | ⋯ | 1.31 | 68 | 88 | 0 | 0 | 0.00 | 321 | 404 | 87 | 13 |
| Wes Morgan | 37 | 443491200 | 1984/01/21 | Premier League | 2018/2019 | Defender | Leicester City | 1926 | 783 | ⋯ | 1.12 | 80 | 88 | 385 | 0 | 0.23 | 125 | 300 | 48 | 6 |
| Wesley Hoedt | 27 | 762912000 | 1994/03/06 | Premier League | 2018/2019 | Defender | Southampton | 1170 | 540 | ⋯ | 1.54 | 59 | 90 | 585 | 0 | 0.15 | 374 | 370 | 123 | 27 |
| Wilfredo Daniel Caballero | 39 | 370483200 | 1981/09/28 | Premier League | 2018/2019 | Goalkeeper | Chelsea | 180 | 90 | ⋯ | 0.00 | 0 | 90 | 0 | 0 | 0.00 | -1 | -1 | -1 | 19 |
| Wilfried Zaha | 28 | 721353600 | 1992/11/10 | Premier League | 2018/2019 | Midfielder | Crystal Palace | 3041 | 1347 | ⋯ | 1.33 | 68 | 89 | 304 | 608 | 0.30 | 63 | 92 | -1 | 2 |
| Will Hughes | 25 | 798076800 | 1995/04/17 | Premier League | 2018/2019 | Midfielder | Watford | 2436 | 1251 | ⋯ | 1.44 | 62 | 76 | 487 | 609 | 0.18 | 199 | 91 | -1 | 8 |
| Will Norris | 27 | 745113600 | 1993/08/12 | Premier League | 2018/2019 | Goalkeeper | Wolverhampton Wanderers | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| Willian | 32 | 587088000 | 1988/08/09 | Premier League | 2018/2019 | Forward | Chelsea | 2108 | 833 | ⋯ | 0.98 | 92 | 66 | 1054 | 351 | 0.09 | 132 | 36 | -1 | 8 |
| Willy Boly | 30 | 665539200 | 1991/02/03 | Premier League | 2018/2019 | Defender | Wolverhampton Wanderers | 3169 | 1530 | ⋯ | 1.08 | 83 | 88 | 792 | 0 | 0.11 | 148 | 312 | 43 | 4 |
| Xherdan Shaqiri | 29 | 687052800 | 1991/10/10 | Premier League | 2018/2019 | Midfielder | Liverpool | 1058 | 538 | ⋯ | 0.43 | 212 | 44 | 529 | 353 | 0.17 | 15 | 39 | -1 | 4 |
| Yann Valery | 22 | 919641600 | 1999/02/22 | Premier League | 2018/2019 | Defender | Southampton | 1715 | 1070 | ⋯ | 1.36 | 66 | 75 | 343 | 1715 | 0.26 | 162 | 214 | 95 | 7 |
| Yerry Fernando Mina González | 26 | 780278400 | 1994/09/23 | Premier League | 2018/2019 | Defender | Everton | 890 | 360 | ⋯ | 1.21 | 74 | 68 | 297 | 0 | 0.30 | 161 | 329 | 67 | 9 |
| Yoshinori Muto | 28 | 711158400 | 1992/07/15 | Premier League | 2018/2019 | Forward | Newcastle United | 516 | 180 | ⋯ | 1.74 | 52 | 30 | 516 | 0 | 0.17 | 113 | 290 | -1 | 8 |
| Youri Tielemans | 23 | 862963200 | 1997/05/07 | Premier League | 2018/2019 | Midfielder | Leicester City | 1092 | 575 | ⋯ | 1.07 | 84 | 84 | 546 | 273 | 0.16 | 80 | 13 | -1 | 4 |
| Yves Bissouma | 24 | 841363200 | 1996/08/30 | Premier League | 2018/2019 | Midfielder | Brighton & Hove Albion | 1769 | 747 | ⋯ | 1.53 | 59 | 63 | 354 | 0 | 0.25 | 402 | 293 | -1 | 17 |
| Zechariah Medley | 20 | 962928000 | 2000/07/07 | Premier League | 2018/2019 | Defender | Arsenal | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| Zeze Steven Sessegnon | 20 | 958608000 | 2000/05/18 | Premier League | 2018/2019 | Defender | Fulham | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| Łukasz Fabiański | 35 | 482630400 | 1985/04/18 | Premier League | 2018/2019 | Goalkeeper | West Ham United | 3420 | 1710 | ⋯ | 1.26 | 71 | 90 | 0 | 0 | 0.00 | 391 | 343 | 81 | 19 |
2.6.2. 自分のPCでRを動かしている場合のファイル読み込み
自分のPCでRを動かしている場合、あるファイルを読み込みたいときには、2つの方法があります。
ファイルの相対パスを入力して読み込む …
read.csv("C:/Users/xxx/Desktop/sample_data/sample.csv")
setwd()でファイルのある場所まで移動して読み込む …
setwd("C:/Users/xxx/Desktop/sample_data") → read.csv("sample.csv")

setwd()はどの場所(フォルダ)でRを動かすかを設定する関数です。
2.7. データフレーム
read.csv関数でCSV形式のファイルを読み込むと、綺麗に整えられたテーブル上のフォーマットとして扱われます。
この形式をデータフレームと呼び、Rで利用されるデータの保存形式になります。
数値や文字などの異なるデータを行列の様にまとめて扱うことができ、
グラフを描く関数や統計処理を行う関数を使用するためには、データフレームとしてデータを変数に格納しておく必要があります。
2.7.1. データフレームの作成
基本的にはCSVファイル等でデータはまとめておき、read.csvで読み込む場合が多いですが、
以下の様な書き方でデータフレームを0から作成することもできます。
data.frame(列名=データ, 列名=データ, ... 列名=データ)
[23]:
x <- c("red", "yellow", "blue", "red", "yellow", "blue")
y <- c(21, 20, 19, 19, 22, 20)
z <- c(89, 67, 95, 58, 78, 75)
data.frame("flower"=x, "leaf_length"=y, "plant_height"=z)
| flower | leaf_length | plant_height |
|---|---|---|
| <chr> | <dbl> | <dbl> |
| red | 21 | 89 |
| yellow | 20 | 67 |
| blue | 19 | 95 |
| red | 19 | 58 |
| yellow | 22 | 78 |
| blue | 20 | 75 |
2.7.2. データフレームから要素の抽出
CSV形式のファイルを読み込むread.csv関数は、自動的にデータフレームとしてCSVファイルをRに読み込みます。
先ほどアップロードしたデータをデータフレームとしてdfという変数に格納しておきます。
[24]:
df <- read.csv("england-premier-league-players-2018-to-2019-stats.csv")
[25]:
df
| full_name | age | birthday | birthday_GMT | league | season | position | Current.Club | minutes_played_overall | minutes_played_home | ⋯ | conceded_per_90_overall | min_per_conceded_overall | min_per_match | min_per_card_overall | min_per_assist_overall | cards_per_90_overall | rank_in_league_top_attackers | rank_in_league_top_midfielders | rank_in_league_top_defenders | rank_in_club_top_scorer |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| <chr> | <int> | <int> | <chr> | <chr> | <chr> | <chr> | <chr> | <int> | <int> | ⋯ | <dbl> | <int> | <int> | <int> | <int> | <dbl> | <int> | <int> | <int> | <int> |
| Aaron Cresswell | 31 | 629683200 | 1989/12/15 | Premier League | 2018/2019 | Defender | West Ham United | 1589 | 888 | ⋯ | 1.25 | 72 | 79 | 1589 | 1589 | 0.06 | 290 | 191 | 80 | 20 |
| Aaron Lennon | 33 | 545529600 | 1987/04/16 | Premier League | 2018/2019 | Midfielder | Burnley | 1217 | 487 | ⋯ | 1.48 | 61 | 76 | 1217 | 1217 | 0.07 | 196 | 187 | -1 | 10 |
| Aaron Mooy | 30 | 653356800 | 1990/09/15 | Premier League | 2018/2019 | Midfielder | Huddersfield Town | 2327 | 1190 | ⋯ | 1.78 | 51 | 80 | 582 | 2327 | 0.15 | 144 | 233 | -1 | 3 |
| Aaron Ramsey | 30 | 662169600 | 1990/12/26 | Premier League | 2018/2019 | Midfielder | Arsenal | 1327 | 689 | ⋯ | 0.81 | 111 | 47 | 0 | 221 | 0.00 | 69 | 8 | -1 | 5 |
| Aaron Rowe | 20 | 968284800 | 2000/09/07 | Premier League | 2018/2019 | Forward | Huddersfield Town | 69 | 14 | ⋯ | 1.30 | 69 | 35 | 0 | 0 | 0.00 | -1 | -1 | -1 | 31 |
| Aaron Wan-Bissaka | 23 | 880502400 | 1997/11/26 | Premier League | 2018/2019 | Midfielder | Crystal Palace | 3135 | 1605 | ⋯ | 1.18 | 76 | 90 | 523 | 1045 | 0.17 | 312 | 160 | -1 | 22 |
| Abdelhamid Sabiri | 24 | 849139200 | 1996/11/28 | Premier League | 2018/2019 | Midfielder | Huddersfield Town | 49 | 0 | ⋯ | 5.51 | 16 | 25 | 0 | 0 | 0.00 | -1 | -1 | -1 | 22 |
| Abdoulaye Doucouré | 28 | 725846400 | 1993/01/01 | Premier League | 2018/2019 | Midfielder | Watford | 3062 | 1566 | ⋯ | 1.59 | 57 | 87 | 437 | 510 | 0.21 | 124 | 80 | -1 | 5 |
| Aboubakar Kamara | 26 | 794534400 | 1995/03/07 | Premier League | 2018/2019 | Forward | Fulham | 687 | 468 | ⋯ | 2.10 | 43 | 53 | 344 | 0 | 0.26 | 38 | 412 | -1 | 4 |
| Adalberto Peñaranda Maestre | 23 | 865036800 | 1997/05/31 | Premier League | 2018/2019 | Forward | Watford | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| Adam David Lallana | 32 | 579225600 | 1988/05/10 | Premier League | 2018/2019 | Midfielder | Liverpool | 465 | 189 | ⋯ | 0.39 | 233 | 36 | 465 | 0 | 0.19 | 379 | 344 | -1 | 18 |
| Adam Masina | 27 | 757468800 | 1994/01/02 | Premier League | 2018/2019 | Defender | Watford | 1003 | 463 | ⋯ | 1.70 | 53 | 72 | 201 | 1003 | 0.45 | 397 | 155 | 144 | 20 |
| Adam Smith | 29 | 672883200 | 1991/04/29 | Premier League | 2018/2019 | Defender | AFC Bournemouth | 2073 | 1051 | ⋯ | 1.30 | 69 | 83 | 296 | 2073 | 0.30 | 227 | 228 | 85 | 10 |
| Adama Diakhaby | 24 | 836524800 | 1996/07/05 | Premier League | 2018/2019 | Forward | Huddersfield Town | 551 | 345 | ⋯ | 2.61 | 34 | 46 | 551 | 0 | 0.16 | 332 | 359 | -1 | 26 |
| Adama Traoré Diarra | 25 | 822528000 | 1996/01/25 | Premier League | 2018/2019 | Midfielder | Wolverhampton Wanderers | 890 | 315 | ⋯ | 1.11 | 81 | 31 | 890 | 890 | 0.10 | 160 | 152 | -1 | 13 |
| Ademola Lookman | 23 | 877305600 | 1997/10/20 | Premier League | 2018/2019 | Forward | Everton | 601 | 334 | ⋯ | 1.05 | 86 | 29 | 0 | 301 | 0.00 | 292 | 20 | -1 | 17 |
| Adrian Mariappa | 34 | 528681600 | 1986/10/03 | Premier League | 2018/2019 | Defender | Watford | 1921 | 841 | ⋯ | 1.36 | 66 | 74 | 640 | 0 | 0.14 | 396 | 414 | 94 | 21 |
| Adrián San Miguel del Castillo | 34 | 536630400 | 1987/01/03 | Premier League | 2018/2019 | Goalkeeper | West Ham United | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| Adrien Sebastian Perruchet Silva | 32 | 605923200 | 1989/03/15 | Premier League | 2018/2019 | Midfielder | Leicester City | 88 | 8 | ⋯ | 1.02 | 88 | 44 | 0 | 0 | 0.00 | -1 | -1 | -1 | 15 |
| Ainsley Maitland-Niles | 23 | 872812800 | 1997/08/29 | Premier League | 2018/2019 | Midfielder | Arsenal | 985 | 462 | ⋯ | 1.46 | 62 | 62 | 328 | 985 | 0.27 | 174 | 167 | -1 | 15 |
| Alberto Moreno | 28 | 710294400 | 1992/07/05 | Premier League | 2018/2019 | Defender | Liverpool | 155 | 90 | ⋯ | 1.16 | 78 | 78 | 0 | 0 | 0.00 | -1 | -1 | -1 | 17 |
| Aleksandar Mitrović | 26 | 779673600 | 1994/09/16 | Premier League | 2018/2019 | Forward | Fulham | 3282 | 1616 | ⋯ | 2.03 | 44 | 89 | 469 | 1094 | 0.19 | 62 | 176 | -1 | 1 |
| Alex Iwobi | 24 | 831081600 | 1996/05/03 | Premier League | 2018/2019 | Forward | Arsenal | 1972 | 742 | ⋯ | 1.41 | 64 | 56 | 0 | 329 | 0.00 | 128 | 31 | -1 | 8 |
| Alex McCarthy | 31 | 628646400 | 1989/12/03 | Premier League | 2018/2019 | Goalkeeper | Southampton | 2250 | 1170 | ⋯ | 1.48 | 61 | 90 | 2250 | 0 | 0.04 | 372 | 365 | 114 | 21 |
| Alex Oxlade-Chamberlain | 27 | 745372800 | 1993/08/15 | Premier League | 2018/2019 | Midfielder | Liverpool | 19 | 19 | ⋯ | 0.00 | 0 | 10 | 0 | 0 | 0.00 | -1 | -1 | -1 | 21 |
| Alex Pritchard | 27 | 736387200 | 1993/05/03 | Premier League | 2018/2019 | Midfielder | Huddersfield Town | 2092 | 992 | ⋯ | 1.68 | 54 | 70 | 1046 | 0 | 0.09 | 171 | 373 | -1 | 5 |
| Alex Smithies | 31 | 636595200 | 1990/03/05 | Premier League | 2018/2019 | Goalkeeper | Cardiff City | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| Alexander Sørloth | 25 | 818121600 | 1995/12/05 | Premier League | 2018/2019 | Forward | Crystal Palace | 173 | 121 | ⋯ | 0.52 | 173 | 14 | 0 | 0 | 0.00 | -1 | -1 | -1 | 17 |
| Alexandre Lacazette | 29 | 675388800 | 1991/05/28 | Premier League | 2018/2019 | Forward | Arsenal | 2503 | 1403 | ⋯ | 1.01 | 89 | 72 | 1252 | 313 | 0.07 | 21 | 25 | -1 | 2 |
| Alexandre Nascimento Costa Silva | 24 | 858470400 | 1997/03/16 | Premier League | 2018/2019 | Forward | West Ham United | 17 | 0 | ⋯ | 0.00 | 0 | 17 | 0 | 0 | 0.00 | -1 | -1 | -1 | 16 |
| ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋱ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ |
| Tyreke Johnson | 22 | 910051200 | 1998/11/03 | Premier League | 2018/2019 | Defender | Southampton | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| Tyrone Mings | 28 | 731980800 | 1993/03/13 | Premier League | 2018/2019 | Defender | AFC Bournemouth | 141 | 7 | ⋯ | 2.55 | 35 | 28 | 0 | 0 | 0.00 | -1 | -1 | -1 | 23 |
| Vicente Guaita | 34 | 537235200 | 1987/01/10 | Premier League | 2018/2019 | Goalkeeper | Crystal Palace | 1755 | 1035 | ⋯ | 1.08 | 84 | 88 | 878 | 0 | 0.10 | 325 | 352 | 45 | 19 |
| Vicente Iborra De La Fuente | 33 | 569289600 | 1988/01/16 | Premier League | 2018/2019 | Midfielder | Leicester City | 226 | 152 | ⋯ | 1.59 | 57 | 28 | 0 | 0 | 0.00 | -1 | -1 | -1 | 14 |
| Víctor Camarasa | 26 | 770083200 | 1994/05/28 | Premier League | 2018/2019 | Midfielder | Cardiff City | 2579 | 1267 | ⋯ | 1.68 | 54 | 81 | 430 | 645 | 0.21 | 111 | 106 | -1 | 1 |
| Victor Moses | 30 | 660960000 | 1990/12/12 | Premier League | 2018/2019 | Midfielder | Chelsea | 26 | 17 | ⋯ | 3.46 | 26 | 13 | 0 | 0 | 0.00 | -1 | -1 | -1 | 23 |
| Victor Nilsson Lindelöf | 26 | 774403200 | 1994/07/17 | Premier League | 2018/2019 | Defender | Manchester United | 2602 | 1112 | ⋯ | 1.31 | 68 | 87 | 2602 | 2602 | 0.03 | 263 | 246 | 88 | 14 |
| Victor Wanyama | 29 | 677808000 | 1991/06/25 | Premier League | 2018/2019 | Midfielder | Tottenham Hotspur | 509 | 302 | ⋯ | 0.53 | 170 | 39 | 255 | 0 | 0.35 | 106 | 266 | -1 | 11 |
| Viktor Gyökeres | 22 | 896918400 | 1998/06/04 | Premier League | 2018/2019 | Forward | Brighton & Hove Albion | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| Vincent Janssen | 26 | 771638400 | 1994/06/15 | Premier League | 2018/2019 | Forward | Tottenham Hotspur | 36 | 36 | ⋯ | 0.00 | 0 | 12 | 0 | 0 | 0.00 | -1 | -1 | -1 | 28 |
| Vincent Kompany | 34 | 513475200 | 1986/04/10 | Premier League | 2018/2019 | Defender | Manchester City | 1223 | 561 | ⋯ | 0.52 | 175 | 72 | 204 | 0 | 0.44 | 194 | 384 | 7 | 12 |
| Virgil van Dijk | 29 | 678931200 | 1991/07/08 | Premier League | 2018/2019 | Defender | Liverpool | 3385 | 1675 | ⋯ | 0.51 | 178 | 89 | 3385 | 1693 | 0.03 | 152 | 201 | 5 | 6 |
| Wayne Hennessey | 34 | 538444800 | 1987/01/24 | Premier League | 2018/2019 | Goalkeeper | Crystal Palace | 1575 | 675 | ⋯ | 1.31 | 68 | 88 | 0 | 0 | 0.00 | 321 | 404 | 87 | 13 |
| Wes Morgan | 37 | 443491200 | 1984/01/21 | Premier League | 2018/2019 | Defender | Leicester City | 1926 | 783 | ⋯ | 1.12 | 80 | 88 | 385 | 0 | 0.23 | 125 | 300 | 48 | 6 |
| Wesley Hoedt | 27 | 762912000 | 1994/03/06 | Premier League | 2018/2019 | Defender | Southampton | 1170 | 540 | ⋯ | 1.54 | 59 | 90 | 585 | 0 | 0.15 | 374 | 370 | 123 | 27 |
| Wilfredo Daniel Caballero | 39 | 370483200 | 1981/09/28 | Premier League | 2018/2019 | Goalkeeper | Chelsea | 180 | 90 | ⋯ | 0.00 | 0 | 90 | 0 | 0 | 0.00 | -1 | -1 | -1 | 19 |
| Wilfried Zaha | 28 | 721353600 | 1992/11/10 | Premier League | 2018/2019 | Midfielder | Crystal Palace | 3041 | 1347 | ⋯ | 1.33 | 68 | 89 | 304 | 608 | 0.30 | 63 | 92 | -1 | 2 |
| Will Hughes | 25 | 798076800 | 1995/04/17 | Premier League | 2018/2019 | Midfielder | Watford | 2436 | 1251 | ⋯ | 1.44 | 62 | 76 | 487 | 609 | 0.18 | 199 | 91 | -1 | 8 |
| Will Norris | 27 | 745113600 | 1993/08/12 | Premier League | 2018/2019 | Goalkeeper | Wolverhampton Wanderers | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| Willian | 32 | 587088000 | 1988/08/09 | Premier League | 2018/2019 | Forward | Chelsea | 2108 | 833 | ⋯ | 0.98 | 92 | 66 | 1054 | 351 | 0.09 | 132 | 36 | -1 | 8 |
| Willy Boly | 30 | 665539200 | 1991/02/03 | Premier League | 2018/2019 | Defender | Wolverhampton Wanderers | 3169 | 1530 | ⋯ | 1.08 | 83 | 88 | 792 | 0 | 0.11 | 148 | 312 | 43 | 4 |
| Xherdan Shaqiri | 29 | 687052800 | 1991/10/10 | Premier League | 2018/2019 | Midfielder | Liverpool | 1058 | 538 | ⋯ | 0.43 | 212 | 44 | 529 | 353 | 0.17 | 15 | 39 | -1 | 4 |
| Yann Valery | 22 | 919641600 | 1999/02/22 | Premier League | 2018/2019 | Defender | Southampton | 1715 | 1070 | ⋯ | 1.36 | 66 | 75 | 343 | 1715 | 0.26 | 162 | 214 | 95 | 7 |
| Yerry Fernando Mina González | 26 | 780278400 | 1994/09/23 | Premier League | 2018/2019 | Defender | Everton | 890 | 360 | ⋯ | 1.21 | 74 | 68 | 297 | 0 | 0.30 | 161 | 329 | 67 | 9 |
| Yoshinori Muto | 28 | 711158400 | 1992/07/15 | Premier League | 2018/2019 | Forward | Newcastle United | 516 | 180 | ⋯ | 1.74 | 52 | 30 | 516 | 0 | 0.17 | 113 | 290 | -1 | 8 |
| Youri Tielemans | 23 | 862963200 | 1997/05/07 | Premier League | 2018/2019 | Midfielder | Leicester City | 1092 | 575 | ⋯ | 1.07 | 84 | 84 | 546 | 273 | 0.16 | 80 | 13 | -1 | 4 |
| Yves Bissouma | 24 | 841363200 | 1996/08/30 | Premier League | 2018/2019 | Midfielder | Brighton & Hove Albion | 1769 | 747 | ⋯ | 1.53 | 59 | 63 | 354 | 0 | 0.25 | 402 | 293 | -1 | 17 |
| Zechariah Medley | 20 | 962928000 | 2000/07/07 | Premier League | 2018/2019 | Defender | Arsenal | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| Zeze Steven Sessegnon | 20 | 958608000 | 2000/05/18 | Premier League | 2018/2019 | Defender | Fulham | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| Łukasz Fabiański | 35 | 482630400 | 1985/04/18 | Premier League | 2018/2019 | Goalkeeper | West Ham United | 3420 | 1710 | ⋯ | 1.26 | 71 | 90 | 0 | 0 | 0.00 | 391 | 343 | 81 | 19 |
データフレームとしてデータを読み込んでおくと、一部のデータを抽出すること等が容易になります。
データフレームの特定の列の値を取り出すにはデータフレームの変数名$列名という形で取り出せます。
例えば先ほどdfという変数に読み込んだデータのageという列を取り出すにはdf$ageという形で取り出せま す。
[26]:
# age列取り出し
df$age
- 31
- 33
- 30
- 30
- 20
- 23
- 24
- 28
- 26
- 23
- 32
- 27
- 29
- 24
- 25
- 23
- 34
- 34
- 32
- 23
- 28
- 26
- 24
- 31
- 27
- 27
- 31
- 25
- 29
- 24
- 32
- 23
- 27
- 22
- 20
- 27
- 28
- 28
- 31
- 27
- 29
- 30
- 25
- 24
- 25
- 27
- 34
- 31
- 29
- 32
- 20
- 32
- 25
- 21
- 29
- 25
- 26
- 28
- 35
- 22
- 31
- 27
- 41
- 31
- 31
- 35
- 33
- 26
- 27
- 32
- 0
- 24
- 27
- 37
- 28
- 33
- 31
- 23
- 21
- 21
- 26
- 32
- 28
- 25
- 26
- 29
- 28
- 37
- 23
- 32
- 40
- 24
- 20
- 26
- 23
- 22
- 29
- 26
- 21
- 29
- 35
- 29
- 29
- 31
- 33
- 31
- 34
- 27
- 31
- 31
- 23
- 31
- 29
- 29
- 30
- 29
- 34
- 30
- 30
- 31
- 37
- 29
- 28
- 28
- 21
- 32
- 20
- 28
- 31
- 28
- 28
- 31
- 26
- 31
- 28
- 32
- 29
- 31
- 30
- 34
- 27
- 30
- 30
- 31
- 23
- 32
- 30
- 30
- 33
- 35
- 28
- 24
- 29
- 27
- 22
- 31
- 24
- 24
- 22
- 32
- 27
- 28
- 24
- 25
- 21
- 24
- 23
- 21
- 30
- 27
- 21
- 28
- 25
- 26
- 20
- 26
- 27
- 28
- 29
- 20
- 32
- 29
- 31
- 29
- 27
- 33
- 31
- 32
- 27
- 36
- 35
- 26
- 29
- 27
- 32
- 25
- 30
- 33
- 24
- 28
- ⋯
- 33
- 21
- 31
- 33
- 33
- 32
- 30
- 29
- 19
- 24
- 28
- 26
- 28
- 30
- 23
- 29
- 31
- 25
- 31
- 21
- 33
- 31
- 20
- 22
- 23
- 25
- 31
- 32
- 32
- 28
- 20
- 31
- 37
- 27
- 27
- 35
- 33
- 28
- 26
- 28
- 21
- 31
- 33
- 31
- 30
- 26
- 35
- 28
- 26
- 22
- 27
- 26
- 30
- 28
- 29
- 31
- 32
- 33
- 22
- 21
- 24
- 20
- 34
- 24
- 29
- 30
- 36
- 30
- 29
- 30
- 29
- 28
- 29
- 29
- 33
- 40
- 38
- 35
- 38
- 29
- 24
- 20
- 24
- 31
- 25
- 28
- 20
- 26
- 29
- 24
- 29
- 26
- 27
- 23
- 30
- 25
- 29
- 25
- 33
- 29
- 30
- 31
- 27
- 31
- 27
- 24
- 22
- 25
- 33
- 31
- 31
- 27
- 28
- 21
- 34
- 21
- 20
- 28
- 25
- 22
- 31
- 22
- 33
- 25
- 34
- 24
- 27
- 32
- 23
- 30
- 33
- 28
- 32
- 34
- 27
- 29
- 34
- 34
- 28
- 36
- 33
- 32
- 26
- 36
- 30
- 31
- 37
- 35
- 29
- 26
- 36
- 32
- 29
- 25
- 32
- 21
- 27
- 32
- 33
- 21
- 23
- 32
- 30
- 31
- 22
- 34
- 28
- 22
- 32
- 26
- 22
- 28
- 34
- 33
- 26
- 30
- 26
- 29
- 22
- 26
- 34
- 29
- 34
- 37
- 27
- 39
- 28
- 25
- 27
- 32
- 30
- 29
- 22
- 26
- 28
- 23
- 24
- 20
- 20
- 35
列名だけではなく、列番号でも指定できます。データフレームの変数名[,列番号]という形です。
例えば7列目のデータを取り出すにはdf[,7]となります。
[27]:
# 7列目取り出し
df[,7]
- 'Defender'
- 'Midfielder'
- 'Midfielder'
- 'Midfielder'
- 'Forward'
- 'Midfielder'
- 'Midfielder'
- 'Midfielder'
- 'Forward'
- 'Forward'
- 'Midfielder'
- 'Defender'
- 'Defender'
- 'Forward'
- 'Midfielder'
- 'Forward'
- 'Defender'
- 'Goalkeeper'
- 'Midfielder'
- 'Midfielder'
- 'Defender'
- 'Forward'
- 'Forward'
- 'Goalkeeper'
- 'Midfielder'
- 'Midfielder'
- 'Goalkeeper'
- 'Forward'
- 'Forward'
- 'Forward'
- 'Forward'
- 'Defender'
- 'Defender'
- 'Goalkeeper'
- 'Defender'
- 'Forward'
- 'Goalkeeper'
- 'Forward'
- 'Midfielder'
- 'Midfielder'
- 'Forward'
- 'Midfielder'
- 'Midfielder'
- 'Defender'
- 'Midfielder'
- 'Defender'
- 'Midfielder'
- 'Forward'
- 'Midfielder'
- 'Forward'
- 'Midfielder'
- 'Defender'
- 'Goalkeeper'
- 'Defender'
- 'Midfielder'
- 'Forward'
- 'Defender'
- 'Defender'
- 'Defender'
- 'Goalkeeper'
- 'Midfielder'
- 'Defender'
- 'Goalkeeper'
- 'Forward'
- 'Midfielder'
- 'Midfielder'
- 'Goalkeeper'
- 'Defender'
- 'Forward'
- 'Midfielder'
- 'Midfielder'
- 'Defender'
- 'Defender'
- 'Goalkeeper'
- 'Defender'
- 'Goalkeeper'
- 'Defender'
- 'Defender'
- 'Defender'
- 'Forward'
- 'Defender'
- 'Midfielder'
- 'Midfielder'
- 'Defender'
- 'Midfielder'
- 'Goalkeeper'
- 'Midfielder'
- 'Goalkeeper'
- 'Forward'
- 'Defender'
- 'Defender'
- 'Defender'
- 'Midfielder'
- 'Defender'
- 'Forward'
- 'Midfielder'
- 'Forward'
- 'Defender'
- 'Defender'
- 'Defender'
- 'Midfielder'
- 'Defender'
- 'Forward'
- 'Defender'
- 'Midfielder'
- 'Forward'
- 'Defender'
- 'Defender'
- 'Midfielder'
- 'Defender'
- 'Defender'
- 'Defender'
- 'Forward'
- 'Midfielder'
- 'Forward'
- 'Midfielder'
- 'Defender'
- 'Defender'
- 'Defender'
- 'Defender'
- 'Goalkeeper'
- 'Forward'
- 'Forward'
- 'Midfielder'
- 'Midfielder'
- 'Defender'
- 'Midfielder'
- 'Defender'
- 'Midfielder'
- 'Goalkeeper'
- 'Defender'
- 'Midfielder'
- 'Midfielder'
- 'Forward'
- 'Forward'
- 'Midfielder'
- 'Defender'
- 'Midfielder'
- 'Defender'
- 'Defender'
- 'Goalkeeper'
- 'Forward'
- 'Forward'
- 'Defender'
- 'Forward'
- 'Goalkeeper'
- 'Goalkeeper'
- 'Forward'
- 'Defender'
- 'Midfielder'
- 'Defender'
- 'Defender'
- 'Midfielder'
- 'Defender'
- 'Midfielder'
- 'Defender'
- 'Midfielder'
- 'Midfielder'
- 'Defender'
- 'Defender'
- 'Midfielder'
- 'Defender'
- 'Midfielder'
- 'Forward'
- 'Midfielder'
- 'Forward'
- 'Forward'
- 'Forward'
- 'Midfielder'
- 'Goalkeeper'
- 'Forward'
- 'Forward'
- 'Midfielder'
- 'Defender'
- 'Midfielder'
- 'Defender'
- 'Midfielder'
- 'Defender'
- 'Midfielder'
- 'Midfielder'
- 'Midfielder'
- 'Defender'
- 'Midfielder'
- 'Defender'
- 'Midfielder'
- 'Goalkeeper'
- 'Defender'
- 'Defender'
- 'Midfielder'
- 'Forward'
- 'Midfielder'
- 'Defender'
- 'Defender'
- 'Forward'
- 'Midfielder'
- 'Midfielder'
- 'Midfielder'
- 'Goalkeeper'
- 'Goalkeeper'
- 'Midfielder'
- ⋯
- 'Midfielder'
- 'Goalkeeper'
- 'Forward'
- 'Defender'
- 'Midfielder'
- 'Goalkeeper'
- 'Defender'
- 'Defender'
- 'Midfielder'
- 'Defender'
- 'Forward'
- 'Midfielder'
- 'Goalkeeper'
- 'Defender'
- 'Midfielder'
- 'Defender'
- 'Midfielder'
- 'Defender'
- 'Defender'
- 'Midfielder'
- 'Defender'
- 'Defender'
- 'Midfielder'
- 'Midfielder'
- 'Defender'
- 'Midfielder'
- 'Defender'
- 'Defender'
- 'Midfielder'
- 'Defender'
- 'Forward'
- 'Midfielder'
- 'Goalkeeper'
- 'Forward'
- 'Midfielder'
- 'Defender'
- 'Midfielder'
- 'Midfielder'
- 'Midfielder'
- 'Forward'
- 'Midfielder'
- 'Midfielder'
- 'Midfielder'
- 'Midfielder'
- 'Midfielder'
- 'Midfielder'
- 'Defender'
- 'Midfielder'
- 'Defender'
- 'Midfielder'
- 'Midfielder'
- 'Midfielder'
- 'Defender'
- 'Midfielder'
- 'Midfielder'
- 'Goalkeeper'
- 'Midfielder'
- 'Defender'
- 'Defender'
- 'Midfielder'
- 'Midfielder'
- 'Midfielder'
- 'Forward'
- 'Midfielder'
- 'Midfielder'
- 'Forward'
- 'Defender'
- 'Defender'
- 'Midfielder'
- 'Defender'
- 'Defender'
- 'Midfielder'
- 'Goalkeeper'
- 'Midfielder'
- 'Midfielder'
- 'Forward'
- 'Goalkeeper'
- 'Defender'
- 'Defender'
- 'Defender'
- 'Midfielder'
- 'Midfielder'
- 'Defender'
- 'Forward'
- 'Midfielder'
- 'Forward'
- 'Midfielder'
- 'Forward'
- 'Midfielder'
- 'Forward'
- 'Forward'
- 'Forward'
- 'Defender'
- 'Forward'
- 'Midfielder'
- 'Defender'
- 'Midfielder'
- 'Midfielder'
- 'Midfielder'
- 'Forward'
- 'Forward'
- 'Midfielder'
- 'Forward'
- 'Forward'
- 'Midfielder'
- 'Midfielder'
- 'Defender'
- 'Midfielder'
- 'Goalkeeper'
- 'Defender'
- 'Defender'
- 'Midfielder'
- 'Midfielder'
- 'Midfielder'
- 'Forward'
- 'Goalkeeper'
- 'Defender'
- 'Forward'
- 'Forward'
- 'Forward'
- 'Forward'
- 'Defender'
- 'Midfielder'
- 'Forward'
- 'Defender'
- 'Midfielder'
- 'Defender'
- 'Defender'
- 'Midfielder'
- 'Defender'
- 'Defender'
- 'Defender'
- 'Forward'
- 'Goalkeeper'
- 'Goalkeeper'
- 'Defender'
- 'Forward'
- 'Forward'
- 'Defender'
- 'Defender'
- 'Goalkeeper'
- 'Defender'
- 'Midfielder'
- 'Defender'
- 'Midfielder'
- 'Forward'
- 'Defender'
- 'Defender'
- 'Defender'
- 'Forward'
- 'Midfielder'
- 'Midfielder'
- 'Midfielder'
- 'Midfielder'
- 'Midfielder'
- 'Forward'
- 'Defender'
- 'Forward'
- 'Defender'
- 'Defender'
- 'Defender'
- 'Defender'
- 'Midfielder'
- 'Midfielder'
- 'Midfielder'
- 'Goalkeeper'
- 'Defender'
- 'Defender'
- 'Forward'
- 'Defender'
- 'Defender'
- 'Defender'
- 'Goalkeeper'
- 'Midfielder'
- 'Midfielder'
- 'Midfielder'
- 'Defender'
- 'Midfielder'
- 'Forward'
- 'Forward'
- 'Defender'
- 'Defender'
- 'Goalkeeper'
- 'Defender'
- 'Defender'
- 'Goalkeeper'
- 'Midfielder'
- 'Midfielder'
- 'Goalkeeper'
- 'Forward'
- 'Defender'
- 'Midfielder'
- 'Defender'
- 'Defender'
- 'Forward'
- 'Midfielder'
- 'Midfielder'
- 'Defender'
- 'Defender'
- 'Goalkeeper'
列番号の代わりに列名を使用することもできます。
この場合、列名は」」で括る必要があります。
[28]:
# age列取り出し df[ , ]使用
df[,"age"]
- 31
- 33
- 30
- 30
- 20
- 23
- 24
- 28
- 26
- 23
- 32
- 27
- 29
- 24
- 25
- 23
- 34
- 34
- 32
- 23
- 28
- 26
- 24
- 31
- 27
- 27
- 31
- 25
- 29
- 24
- 32
- 23
- 27
- 22
- 20
- 27
- 28
- 28
- 31
- 27
- 29
- 30
- 25
- 24
- 25
- 27
- 34
- 31
- 29
- 32
- 20
- 32
- 25
- 21
- 29
- 25
- 26
- 28
- 35
- 22
- 31
- 27
- 41
- 31
- 31
- 35
- 33
- 26
- 27
- 32
- 0
- 24
- 27
- 37
- 28
- 33
- 31
- 23
- 21
- 21
- 26
- 32
- 28
- 25
- 26
- 29
- 28
- 37
- 23
- 32
- 40
- 24
- 20
- 26
- 23
- 22
- 29
- 26
- 21
- 29
- 35
- 29
- 29
- 31
- 33
- 31
- 34
- 27
- 31
- 31
- 23
- 31
- 29
- 29
- 30
- 29
- 34
- 30
- 30
- 31
- 37
- 29
- 28
- 28
- 21
- 32
- 20
- 28
- 31
- 28
- 28
- 31
- 26
- 31
- 28
- 32
- 29
- 31
- 30
- 34
- 27
- 30
- 30
- 31
- 23
- 32
- 30
- 30
- 33
- 35
- 28
- 24
- 29
- 27
- 22
- 31
- 24
- 24
- 22
- 32
- 27
- 28
- 24
- 25
- 21
- 24
- 23
- 21
- 30
- 27
- 21
- 28
- 25
- 26
- 20
- 26
- 27
- 28
- 29
- 20
- 32
- 29
- 31
- 29
- 27
- 33
- 31
- 32
- 27
- 36
- 35
- 26
- 29
- 27
- 32
- 25
- 30
- 33
- 24
- 28
- ⋯
- 33
- 21
- 31
- 33
- 33
- 32
- 30
- 29
- 19
- 24
- 28
- 26
- 28
- 30
- 23
- 29
- 31
- 25
- 31
- 21
- 33
- 31
- 20
- 22
- 23
- 25
- 31
- 32
- 32
- 28
- 20
- 31
- 37
- 27
- 27
- 35
- 33
- 28
- 26
- 28
- 21
- 31
- 33
- 31
- 30
- 26
- 35
- 28
- 26
- 22
- 27
- 26
- 30
- 28
- 29
- 31
- 32
- 33
- 22
- 21
- 24
- 20
- 34
- 24
- 29
- 30
- 36
- 30
- 29
- 30
- 29
- 28
- 29
- 29
- 33
- 40
- 38
- 35
- 38
- 29
- 24
- 20
- 24
- 31
- 25
- 28
- 20
- 26
- 29
- 24
- 29
- 26
- 27
- 23
- 30
- 25
- 29
- 25
- 33
- 29
- 30
- 31
- 27
- 31
- 27
- 24
- 22
- 25
- 33
- 31
- 31
- 27
- 28
- 21
- 34
- 21
- 20
- 28
- 25
- 22
- 31
- 22
- 33
- 25
- 34
- 24
- 27
- 32
- 23
- 30
- 33
- 28
- 32
- 34
- 27
- 29
- 34
- 34
- 28
- 36
- 33
- 32
- 26
- 36
- 30
- 31
- 37
- 35
- 29
- 26
- 36
- 32
- 29
- 25
- 32
- 21
- 27
- 32
- 33
- 21
- 23
- 32
- 30
- 31
- 22
- 34
- 28
- 22
- 32
- 26
- 22
- 28
- 34
- 33
- 26
- 30
- 26
- 29
- 22
- 26
- 34
- 29
- 34
- 37
- 27
- 39
- 28
- 25
- 27
- 32
- 30
- 29
- 22
- 26
- 28
- 23
- 24
- 20
- 20
- 35
当然、行番号でも指定可能です。データフレームの変数名[行番号,]という形です。
例えば、3行目のデータを取り出すにはdf[3,]となります。
[29]:
# 3行目取り出し
df[3,]
| full_name | age | birthday | birthday_GMT | league | season | position | Current.Club | minutes_played_overall | minutes_played_home | ⋯ | conceded_per_90_overall | min_per_conceded_overall | min_per_match | min_per_card_overall | min_per_assist_overall | cards_per_90_overall | rank_in_league_top_attackers | rank_in_league_top_midfielders | rank_in_league_top_defenders | rank_in_club_top_scorer | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| <chr> | <int> | <int> | <chr> | <chr> | <chr> | <chr> | <chr> | <int> | <int> | ⋯ | <dbl> | <int> | <int> | <int> | <int> | <dbl> | <int> | <int> | <int> | <int> | |
| 3 | Aaron Mooy | 30 | 653356800 | 1990/09/15 | Premier League | 2018/2019 | Midfielder | Huddersfield Town | 2327 | 1190 | ⋯ | 1.78 | 51 | 80 | 582 | 2327 | 0.15 | 144 | 233 | -1 | 3 |
複数行を取り出すことも可能です。その場合、取り出したい行番号をc関数でまとめて指定します。
例えば3, 10, 50行目のデータが欲しい時はdf[c(3,10,50), ]となります。
[30]:
# 3,10,50行目取り出し
df[c(3,10,50), ]
| full_name | age | birthday | birthday_GMT | league | season | position | Current.Club | minutes_played_overall | minutes_played_home | ⋯ | conceded_per_90_overall | min_per_conceded_overall | min_per_match | min_per_card_overall | min_per_assist_overall | cards_per_90_overall | rank_in_league_top_attackers | rank_in_league_top_midfielders | rank_in_league_top_defenders | rank_in_club_top_scorer | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| <chr> | <int> | <int> | <chr> | <chr> | <chr> | <chr> | <chr> | <int> | <int> | ⋯ | <dbl> | <int> | <int> | <int> | <int> | <dbl> | <int> | <int> | <int> | <int> | |
| 3 | Aaron Mooy | 30 | 653356800 | 1990/09/15 | Premier League | 2018/2019 | Midfielder | Huddersfield Town | 2327 | 1190 | ⋯ | 1.78 | 51 | 80 | 582 | 2327 | 0.15 | 144 | 233 | -1 | 3 |
| 10 | Adalberto Peñaranda Maestre | 23 | 865036800 | 1997/05/31 | Premier League | 2018/2019 | Forward | Watford | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| 50 | Andy Carroll | 32 | 600048000 | 1989/01/06 | Premier League | 2018/2019 | Forward | West Ham United | 454 | 180 | ⋯ | 1.19 | 76 | 38 | 227 | 0 | 0.40 | 270 | 326 | -1 | 17 |
行番号・列番号の両者を指定することも可能です。
3行目5列目の値を取り出すにはdf[3,5]となります。
[31]:
# 3行5列目取り出し
df[3,5]
この様な操作で取り出してきた値に、別の関数を適用することも可能です。
例えば最初の方に扱ったsummary関数を2列目のデータ(ageの列)に適用する場合は
df_2 <- df[,2]
summary(df_2)
や、1行にまとめてしまって
summary(df[,2])
という形で実行できます。
[32]:
# 2列目にsummary関数を使用
summary(df[,2])
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.0 25.0 28.0 28.1 31.0 41.0
同じような形で特定の列の平均値をmean関数で求めたり、合計値をsum関数で求めることも可能です。
2.7.3. 条件に基づくデータ抽出
もう少し複雑なデータの抽出方法として、条件に基づく方法があります。
例えば
"position"が"Defender"のデータを取り出したい"age"が20以下のデータを取り出したい
等です。
この様な場合は、比較演算子==や>=などを活用します。
2.7.3.1. 比較演算子
Rでは==や>=(大なりイコール)等を使用して値を比較できます。
==: 値が同じかどうか調べる>,<,>=,<=: 大きさの比較
[33]:
5 == 4
[34]:
5 >= 2
これをデータフレームの特定の列に適用すると、すべての値に対して比較を行ってくれます。
例えば、ageの列を取り出して、20以下かどうかの比較をdf$age <= 20という形でしてみると
20以下かどうかTRUE, FALSEで帰ってきます。
[35]:
df$age <= 20
- FALSE
- FALSE
- FALSE
- FALSE
- TRUE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- TRUE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- TRUE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- TRUE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- TRUE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- TRUE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- TRUE
- FALSE
- FALSE
- FALSE
- FALSE
- TRUE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- ⋯
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- TRUE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- TRUE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- TRUE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- TRUE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- TRUE
- FALSE
- FALSE
- FALSE
- FALSE
- TRUE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- TRUE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- TRUE
- TRUE
- FALSE
データフレームでは、df[c(3,10,50), ]という形で、行番号のところにc(3, 10, 50)と入れてあげることで複数行のデータを抽出できました。
このTRUE, FALSEのリストを行番号の代わりに入れることで、TRUEの行だけを取り出す、という事が出来ます。
df[df$age <= 20, ]という形です。
[36]:
# age <= 20 の行を取り出し
df[df$age <= 20, ]
| full_name | age | birthday | birthday_GMT | league | season | position | Current.Club | minutes_played_overall | minutes_played_home | ⋯ | conceded_per_90_overall | min_per_conceded_overall | min_per_match | min_per_card_overall | min_per_assist_overall | cards_per_90_overall | rank_in_league_top_attackers | rank_in_league_top_midfielders | rank_in_league_top_defenders | rank_in_club_top_scorer | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| <chr> | <int> | <int> | <chr> | <chr> | <chr> | <chr> | <chr> | <int> | <int> | ⋯ | <dbl> | <int> | <int> | <int> | <int> | <dbl> | <int> | <int> | <int> | <int> | |
| 5 | Aaron Rowe | 20 | 968284800 | 2000/09/07 | Premier League | 2018/2019 | Forward | Huddersfield Town | 69 | 14 | ⋯ | 1.30 | 69 | 35 | 0 | 0 | 0.00 | -1 | -1 | -1 | 31 |
| 35 | Ali Koiki | 20 | 966902400 | 2000/08/22 | Premier League | 2018/2019 | Defender | Burnley | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| 51 | Angel Gomes | 20 | 967680000 | 2000/08/31 | Premier League | 2018/2019 | Midfielder | Manchester United | 25 | 25 | ⋯ | 3.60 | 25 | 13 | 0 | 0 | 0.00 | -1 | -1 | -1 | 19 |
| 71 | Bakayo Sako | 0 | 0 | 1970/01/01 | Premier League | 2018/2019 | Midfielder | Arsenal | 7 | 7 | ⋯ | 0.00 | 0 | 7 | 0 | 0 | 0.00 | -1 | -1 | -1 | 17 |
| 93 | Callum Hudson-Odoi | 20 | 973555200 | 2000/11/07 | Premier League | 2018/2019 | Midfielder | Chelsea | 391 | 267 | ⋯ | 1.15 | 78 | 39 | 0 | 391 | 0.00 | 277 | 54 | -1 | 16 |
| 127 | Curtis Jones | 20 | 980812800 | 2001/01/30 | Premier League | 2018/2019 | Midfielder | Liverpool | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| 175 | Emile Smith Rowe | 20 | 964742400 | 2000/07/28 | Premier League | 2018/2019 | Midfielder | Arsenal | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| 180 | Ethan Ampadu | 20 | 968889600 | 2000/09/14 | Premier League | 2018/2019 | Midfielder | Chelsea | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| 220 | Harvey Elliot | 0 | 0 | 1970/01/01 | Premier League | 2018/2019 | Forward | Fulham | 18 | 16 | ⋯ | 0.00 | 0 | 9 | 0 | 0 | 0.00 | -1 | -1 | -1 | 28 |
| 244 | James Garner | 20 | 984441600 | 2001/03/13 | Premier League | 2018/2019 | Defender | Manchester United | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| 316 | Kayne Ramsey | 20 | 971136000 | 2000/10/10 | Premier League | 2018/2019 | Midfielder | Southampton | 90 | 90 | ⋯ | 3.00 | 30 | 90 | 0 | 0 | 0.00 | -1 | -1 | -1 | 19 |
| 366 | Marc Guehi | 20 | 963446400 | 2000/07/13 | Premier League | 2018/2019 | Defender | Chelsea | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| 381 | Mason Greenwood | 19 | 1001894400 | 2001/10/01 | Premier League | 2018/2019 | Midfielder | Manchester United | 115 | 105 | ⋯ | 1.57 | 58 | 38 | 0 | 0 | 0.00 | -1 | -1 | -1 | 27 |
| 395 | Matty Daly | 20 | 984182400 | 2001/03/10 | Premier League | 2018/2019 | Midfielder | Huddersfield Town | 73 | 49 | ⋯ | 1.23 | 73 | 37 | 0 | 0 | 0.00 | -1 | -1 | -1 | 18 |
| 403 | Michael Obafemi | 20 | 962841600 | 2000/07/06 | Premier League | 2018/2019 | Forward | Southampton | 134 | 64 | ⋯ | 1.34 | 67 | 22 | 134 | 134 | 0.67 | -1 | -1 | -1 | 16 |
| 434 | Oliver Skipp | 20 | 969062400 | 2000/09/16 | Premier League | 2018/2019 | Midfielder | Tottenham Hotspur | 216 | 191 | ⋯ | 0.00 | 0 | 27 | 0 | 0 | 0.00 | -1 | -1 | -1 | 16 |
| 454 | Philip Foden | 20 | 959472000 | 2000/05/28 | Premier League | 2018/2019 | Midfielder | Manchester City | 327 | 279 | ⋯ | 0.00 | 0 | 25 | 0 | 0 | 0.00 | 67 | 386 | -1 | 11 |
| 459 | Rafael Euclides Soares Camacho | 20 | 958953600 | 2000/05/22 | Premier League | 2018/2019 | Midfielder | Liverpool | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| 489 | Ryan Sessegnon | 20 | 958608000 | 2000/05/18 | Premier League | 2018/2019 | Defender | Fulham | 2298 | 1095 | ⋯ | 2.27 | 40 | 66 | 0 | 383 | 0.00 | 182 | 53 | 168 | 6 |
| 570 | Zechariah Medley | 20 | 962928000 | 2000/07/07 | Premier League | 2018/2019 | Defender | Arsenal | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| 571 | Zeze Steven Sessegnon | 20 | 958608000 | 2000/05/18 | Premier League | 2018/2019 | Defender | Fulham | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
このことを利用して、
"position"が"Defender"のデータを取り出したい"age"が20以下のデータを取り出したい
はそれぞれ
df[df$position == "Defender", ]df[df$age <= 20, ]
という形で抽出できます。
さらに、ある条件に当てはまるデータの中で特定の列を取り出したい場合、たとえば
"position"が"Defender"なデータのage列を取り出したい
のような場合です。
この場合は、行番号を条件で指定したうえで、列名を指定します。
df[df$position == "Defender", "age"]
や
df[df$position == "Defender", ]$age
で取り出せます。
[37]:
# Defenderのage列取り出し
df[df$position == "Defender", "age"]
- 31
- 27
- 29
- 34
- 28
- 23
- 27
- 20
- 24
- 27
- 32
- 21
- 26
- 28
- 35
- 27
- 26
- 24
- 27
- 28
- 31
- 23
- 21
- 26
- 25
- 32
- 40
- 24
- 26
- 26
- 21
- 29
- 29
- 31
- 34
- 27
- 31
- 23
- 31
- 34
- 30
- 30
- 31
- 32
- 28
- 28
- 29
- 30
- 34
- 31
- 33
- 28
- 24
- 27
- 31
- 22
- 32
- 28
- 26
- 26
- 28
- 29
- 29
- 31
- 32
- 26
- 29
- 32
- 35
- 30
- 28
- 26
- 24
- 24
- 27
- 24
- 27
- 20
- 28
- 32
- 25
- 24
- 33
- 28
- 26
- 29
- 28
- 31
- 27
- 23
- 29
- 31
- 26
- 25
- 24
- 27
- 33
- 22
- 36
- 23
- 23
- 30
- 30
- 23
- 25
- 26
- 30
- 23
- 35
- 34
- 36
- 32
- 21
- 29
- 27
- 25
- 31
- 20
- 25
- 30
- 33
- 30
- 29
- 24
- 30
- 29
- 25
- 31
- 33
- 31
- 23
- 31
- 32
- 28
- 35
- 35
- 26
- 30
- 33
- 22
- 36
- 30
- 30
- 29
- 35
- 38
- 29
- 24
- 27
- 25
- 22
- 31
- 31
- 20
- 22
- 34
- 27
- 32
- 30
- 33
- 28
- 29
- 28
- 36
- 32
- 36
- 37
- 35
- 29
- 27
- 33
- 21
- 23
- 32
- 28
- 22
- 26
- 22
- 28
- 26
- 34
- 29
- 37
- 27
- 30
- 22
- 26
- 20
- 20
2.7.3.2. 複数条件による抽出
条件を重ねることも可能です。例えば
"position"が"Defender"かつ"age"が20以下のデータを取り出したい"position"が"Goalkeeper"または"age"が20以下のデータを取り出したい
等です。
条件を重ねるには、&や|を使用します。
(条件1)&(条件2)… 条件1かつ条件2(条件1)|(条件2)… 条件1または条件2
"position"が"Defender"かつ"age"が20以下の場合は、
(df$position == "Defender") & (df$age <= 20)という形です。
これを行番号の代わりに指定します。
[38]:
# Defenderかつage20歳以下
df[(df$position == "Defender") & (df$age <= 20), ]
| full_name | age | birthday | birthday_GMT | league | season | position | Current.Club | minutes_played_overall | minutes_played_home | ⋯ | conceded_per_90_overall | min_per_conceded_overall | min_per_match | min_per_card_overall | min_per_assist_overall | cards_per_90_overall | rank_in_league_top_attackers | rank_in_league_top_midfielders | rank_in_league_top_defenders | rank_in_club_top_scorer | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| <chr> | <int> | <int> | <chr> | <chr> | <chr> | <chr> | <chr> | <int> | <int> | ⋯ | <dbl> | <int> | <int> | <int> | <int> | <dbl> | <int> | <int> | <int> | <int> | |
| 35 | Ali Koiki | 20 | 966902400 | 2000/08/22 | Premier League | 2018/2019 | Defender | Burnley | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0 | -1 | -1 | -1 | -1 |
| 244 | James Garner | 20 | 984441600 | 2001/03/13 | Premier League | 2018/2019 | Defender | Manchester United | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0 | -1 | -1 | -1 | -1 |
| 366 | Marc Guehi | 20 | 963446400 | 2000/07/13 | Premier League | 2018/2019 | Defender | Chelsea | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0 | -1 | -1 | -1 | -1 |
| 489 | Ryan Sessegnon | 20 | 958608000 | 2000/05/18 | Premier League | 2018/2019 | Defender | Fulham | 2298 | 1095 | ⋯ | 2.27 | 40 | 66 | 0 | 383 | 0 | 182 | 53 | 168 | 6 |
| 570 | Zechariah Medley | 20 | 962928000 | 2000/07/07 | Premier League | 2018/2019 | Defender | Arsenal | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0 | -1 | -1 | -1 | -1 |
| 571 | Zeze Steven Sessegnon | 20 | 958608000 | 2000/05/18 | Premier League | 2018/2019 | Defender | Fulham | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0 | -1 | -1 | -1 | -1 |
"position"が"Goalkeeper"または"age"が20以下の場合は、
(df$position == "Goalkeeper") | (df$age <= 20)となります。
[39]:
# Goalkeeperまたはage20歳以下
df[(df$position == "Goalkeeper") | (df$age <= 20), ]
| full_name | age | birthday | birthday_GMT | league | season | position | Current.Club | minutes_played_overall | minutes_played_home | ⋯ | conceded_per_90_overall | min_per_conceded_overall | min_per_match | min_per_card_overall | min_per_assist_overall | cards_per_90_overall | rank_in_league_top_attackers | rank_in_league_top_midfielders | rank_in_league_top_defenders | rank_in_club_top_scorer | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| <chr> | <int> | <int> | <chr> | <chr> | <chr> | <chr> | <chr> | <int> | <int> | ⋯ | <dbl> | <int> | <int> | <int> | <int> | <dbl> | <int> | <int> | <int> | <int> | |
| 5 | Aaron Rowe | 20 | 968284800 | 2000/09/07 | Premier League | 2018/2019 | Forward | Huddersfield Town | 69 | 14 | ⋯ | 1.30 | 69 | 35 | 0 | 0 | 0.00 | -1 | -1 | -1 | 31 |
| 18 | Adrián San Miguel del Castillo | 34 | 536630400 | 1987/01/03 | Premier League | 2018/2019 | Goalkeeper | West Ham United | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| 24 | Alex McCarthy | 31 | 628646400 | 1989/12/03 | Premier League | 2018/2019 | Goalkeeper | Southampton | 2250 | 1170 | ⋯ | 1.48 | 61 | 90 | 2250 | 0 | 0.04 | 372 | 365 | 114 | 21 |
| 27 | Alex Smithies | 31 | 636595200 | 1990/03/05 | Premier League | 2018/2019 | Goalkeeper | Cardiff City | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| 34 | Alfie Whiteman | 22 | 907286400 | 1998/10/02 | Premier League | 2018/2019 | Goalkeeper | Tottenham Hotspur | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| 35 | Ali Koiki | 20 | 966902400 | 2000/08/22 | Premier League | 2018/2019 | Defender | Burnley | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| 37 | Alisson Becker | 28 | 717984000 | 1992/10/02 | Premier League | 2018/2019 | Goalkeeper | Liverpool | 3420 | 1710 | ⋯ | 0.50 | 180 | 90 | 3420 | 0 | 0.03 | 417 | 387 | 3 | 16 |
| 51 | Angel Gomes | 20 | 967680000 | 2000/08/31 | Premier League | 2018/2019 | Midfielder | Manchester United | 25 | 25 | ⋯ | 3.60 | 25 | 13 | 0 | 0 | 0.00 | -1 | -1 | -1 | 19 |
| 53 | Angus Gunn | 25 | 822268800 | 1996/01/22 | Premier League | 2018/2019 | Goalkeeper | Southampton | 1080 | 540 | ⋯ | 1.42 | 64 | 90 | 0 | 0 | 0.00 | 376 | 339 | 104 | 25 |
| 60 | Arijanet Muric | 22 | 910396800 | 1998/11/07 | Premier League | 2018/2019 | Goalkeeper | Manchester City | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| 63 | Artur Boruc | 41 | 319852800 | 1980/02/20 | Premier League | 2018/2019 | Goalkeeper | AFC Bournemouth | 1080 | 540 | ⋯ | 1.42 | 64 | 90 | 540 | 0 | 0.17 | 361 | 394 | 100 | 20 |
| 67 | Asmir Begović | 33 | 551145600 | 1987/06/20 | Premier League | 2018/2019 | Goalkeeper | AFC Bournemouth | 2160 | 1080 | ⋯ | 1.83 | 49 | 90 | 0 | 0 | 0.00 | 358 | 273 | 154 | 19 |
| 71 | Bakayo Sako | 0 | 0 | 1970/01/01 | Premier League | 2018/2019 | Midfielder | Arsenal | 7 | 7 | ⋯ | 0.00 | 0 | 7 | 0 | 0 | 0.00 | -1 | -1 | -1 | 17 |
| 74 | Ben Foster | 37 | 418176000 | 1983/04/03 | Premier League | 2018/2019 | Goalkeeper | Watford | 3420 | 1710 | ⋯ | 1.50 | 60 | 90 | 3420 | 0 | 0.03 | 365 | 353 | 116 | 18 |
| 76 | Ben Hamer | 33 | 564364800 | 1987/11/20 | Premier League | 2018/2019 | Goalkeeper | Huddersfield Town | 553 | 283 | ⋯ | 3.25 | 28 | 79 | 0 | 0 | 0.00 | 327 | 348 | 175 | 14 |
| 86 | Bernd Leno | 29 | 699667200 | 1992/03/04 | Premier League | 2018/2019 | Goalkeeper | Arsenal | 2835 | 1395 | ⋯ | 1.24 | 73 | 89 | 0 | 0 | 0.00 | 390 | 413 | 76 | 23 |
| 88 | Brian Murphy | 37 | 421113600 | 1983/05/07 | Premier League | 2018/2019 | Goalkeeper | Cardiff City | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| 93 | Callum Hudson-Odoi | 20 | 973555200 | 2000/11/07 | Premier League | 2018/2019 | Midfielder | Chelsea | 391 | 267 | ⋯ | 1.15 | 78 | 39 | 0 | 391 | 0.00 | 277 | 54 | -1 | 16 |
| 121 | Claudio Andrés Bravo Muñoz | 37 | 419040000 | 1983/04/13 | Premier League | 2018/2019 | Goalkeeper | Manchester City | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| 127 | Curtis Jones | 20 | 980812800 | 2001/01/30 | Premier League | 2018/2019 | Midfielder | Liverpool | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| 130 | Damián Emiliano Martínez | 28 | 715392000 | 1992/09/02 | Premier League | 2018/2019 | Goalkeeper | Arsenal | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| 141 | Danny Ward | 27 | 740707200 | 1993/06/22 | Premier League | 2018/2019 | Goalkeeper | Leicester City | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| 146 | David Button | 32 | 604540800 | 1989/02/27 | Premier League | 2018/2019 | Goalkeeper | Brighton & Hove Albion | 360 | 180 | ⋯ | 1.25 | 72 | 90 | 0 | 0 | 0.00 | 404 | 327 | 79 | 14 |
| 147 | David de Gea | 30 | 657936000 | 1990/11/07 | Premier League | 2018/2019 | Goalkeeper | Manchester United | 3420 | 1710 | ⋯ | 1.34 | 67 | 90 | 3420 | 0 | 0.03 | 310 | 419 | 91 | 18 |
| 170 | Ederson | 27 | 745545600 | 1993/08/17 | Premier League | 2018/2019 | Goalkeeper | Manchester City | 3420 | 1710 | ⋯ | 0.61 | 149 | 90 | 1710 | 3420 | 0.05 | 366 | 240 | 13 | 21 |
| 175 | Emile Smith Rowe | 20 | 964742400 | 2000/07/28 | Premier League | 2018/2019 | Midfielder | Arsenal | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| 180 | Ethan Ampadu | 20 | 968889600 | 2000/09/14 | Premier League | 2018/2019 | Midfielder | Chelsea | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| 186 | Fabricio Martín Agosto Ramírez | 33 | 567907200 | 1987/12/31 | Premier League | 2018/2019 | Goalkeeper | Fulham | 180 | 90 | ⋯ | 2.50 | 36 | 90 | 0 | 0 | 0.00 | -1 | -1 | -1 | 13 |
| 198 | Fraser Forster | 33 | 574560000 | 1988/03/17 | Premier League | 2018/2019 | Goalkeeper | Southampton | 90 | 0 | ⋯ | 3.00 | 30 | 90 | 0 | 0 | 0.00 | -1 | -1 | -1 | 29 |
| 199 | Freddie Woodman | 24 | 857433600 | 1997/03/04 | Premier League | 2018/2019 | Goalkeeper | Newcastle United | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋱ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ |
| 361 | Maarten Stekelenburg | 38 | 401500800 | 1982/09/22 | Premier League | 2018/2019 | Goalkeeper | Everton | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| 366 | Marc Guehi | 20 | 963446400 | 2000/07/13 | Premier League | 2018/2019 | Defender | Chelsea | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| 370 | Marcus Bettinelli | 28 | 706665600 | 1992/05/24 | Premier League | 2018/2019 | Goalkeeper | Fulham | 630 | 270 | ⋯ | 2.71 | 33 | 90 | 630 | 0 | 0.14 | 296 | 283 | 174 | 14 |
| 374 | Mark Travers | 21 | 926985600 | 1999/05/18 | Premier League | 2018/2019 | Goalkeeper | AFC Bournemouth | 180 | 90 | ⋯ | 2.50 | 36 | 90 | 0 | 0 | 0.00 | -1 | -1 | -1 | 28 |
| 378 | Martin Dúbravka | 32 | 600825600 | 1989/01/15 | Premier League | 2018/2019 | Goalkeeper | Newcastle United | 3420 | 1710 | ⋯ | 1.16 | 78 | 90 | 3420 | 0 | 0.03 | 345 | 317 | 58 | 18 |
| 381 | Mason Greenwood | 19 | 1001894400 | 2001/10/01 | Premier League | 2018/2019 | Midfielder | Manchester United | 115 | 105 | ⋯ | 1.57 | 58 | 38 | 0 | 0 | 0.00 | -1 | -1 | -1 | 27 |
| 385 | Mathew Ryan | 28 | 702691200 | 1992/04/08 | Premier League | 2018/2019 | Goalkeeper | Brighton & Hove Albion | 3060 | 1530 | ⋯ | 1.53 | 59 | 90 | 1530 | 0 | 0.06 | 398 | 389 | 122 | 15 |
| 395 | Matty Daly | 20 | 984182400 | 2001/03/10 | Premier League | 2018/2019 | Midfielder | Huddersfield Town | 73 | 49 | ⋯ | 1.23 | 73 | 37 | 0 | 0 | 0.00 | -1 | -1 | -1 | 18 |
| 403 | Michael Obafemi | 20 | 962841600 | 2000/07/06 | Premier League | 2018/2019 | Forward | Southampton | 134 | 64 | ⋯ | 1.34 | 67 | 22 | 134 | 134 | 0.67 | -1 | -1 | -1 | 16 |
| 405 | Michel Vorm | 37 | 435456000 | 1983/10/20 | Premier League | 2018/2019 | Goalkeeper | Tottenham Hotspur | 180 | 90 | ⋯ | 2.00 | 45 | 90 | 0 | 0 | 0.00 | -1 | -1 | -1 | 22 |
| 428 | Neil Leonard Dula Etheridge | 31 | 634348800 | 1990/02/07 | Premier League | 2018/2019 | Goalkeeper | Cardiff City | 3420 | 1710 | ⋯ | 1.61 | 56 | 90 | 1710 | 0 | 0.05 | 363 | 392 | 134 | 17 |
| 434 | Oliver Skipp | 20 | 969062400 | 2000/09/16 | Premier League | 2018/2019 | Midfielder | Tottenham Hotspur | 216 | 191 | ⋯ | 0.00 | 0 | 27 | 0 | 0 | 0.00 | -1 | -1 | -1 | 16 |
| 445 | Paulo Dino Gazzaniga | 29 | 694310400 | 1992/01/02 | Premier League | 2018/2019 | Goalkeeper | Tottenham Hotspur | 270 | 0 | ⋯ | 0.33 | 270 | 90 | 0 | 0 | 0.00 | -1 | -1 | -1 | 15 |
| 449 | Petr Čech | 38 | 390700800 | 1982/05/20 | Premier League | 2018/2019 | Goalkeeper | Arsenal | 585 | 315 | ⋯ | 1.23 | 73 | 84 | 0 | 0 | 0.00 | 384 | 377 | 71 | 20 |
| 454 | Philip Foden | 20 | 959472000 | 2000/05/28 | Premier League | 2018/2019 | Midfielder | Manchester City | 327 | 279 | ⋯ | 0.00 | 0 | 25 | 0 | 0 | 0.00 | 67 | 386 | -1 | 11 |
| 459 | Rafael Euclides Soares Camacho | 20 | 958953600 | 2000/05/22 | Premier League | 2018/2019 | Midfielder | Liverpool | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| 481 | Rui Pedro dos Santos Patrício | 33 | 571881600 | 1988/02/15 | Premier League | 2018/2019 | Goalkeeper | Wolverhampton Wanderers | 3330 | 1620 | ⋯ | 1.16 | 77 | 90 | 0 | 0 | 0.00 | 405 | 328 | 56 | 19 |
| 488 | Ryan Schofield | 21 | 944870400 | 1999/12/11 | Premier League | 2018/2019 | Goalkeeper | Huddersfield Town | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| 489 | Ryan Sessegnon | 20 | 958608000 | 2000/05/18 | Premier League | 2018/2019 | Defender | Fulham | 2298 | 1095 | ⋯ | 2.27 | 40 | 66 | 0 | 383 | 0.00 | 182 | 53 | 168 | 6 |
| 506 | Sergio Germán Romero | 34 | 540950400 | 1987/02/22 | Premier League | 2018/2019 | Goalkeeper | Manchester United | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| 507 | Sergio Rico | 27 | 746841600 | 1993/09/01 | Premier League | 2018/2019 | Goalkeeper | Fulham | 2610 | 1350 | ⋯ | 1.83 | 49 | 90 | 2610 | 0 | 0.03 | 320 | 406 | 153 | 21 |
| 513 | Simon Mignolet | 33 | 573609600 | 1988/03/06 | Premier League | 2018/2019 | Goalkeeper | Liverpool | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| 538 | Tom Heaton | 34 | 513907200 | 1986/04/15 | Premier League | 2018/2019 | Goalkeeper | Burnley | 1710 | 900 | ⋯ | 1.21 | 74 | 90 | 570 | 0 | 0.16 | 382 | 354 | 68 | 18 |
| 545 | Vicente Guaita | 34 | 537235200 | 1987/01/10 | Premier League | 2018/2019 | Goalkeeper | Crystal Palace | 1755 | 1035 | ⋯ | 1.08 | 84 | 88 | 878 | 0 | 0.10 | 325 | 352 | 45 | 19 |
| 555 | Wayne Hennessey | 34 | 538444800 | 1987/01/24 | Premier League | 2018/2019 | Goalkeeper | Crystal Palace | 1575 | 675 | ⋯ | 1.31 | 68 | 88 | 0 | 0 | 0.00 | 321 | 404 | 87 | 13 |
| 558 | Wilfredo Daniel Caballero | 39 | 370483200 | 1981/09/28 | Premier League | 2018/2019 | Goalkeeper | Chelsea | 180 | 90 | ⋯ | 0.00 | 0 | 90 | 0 | 0 | 0.00 | -1 | -1 | -1 | 19 |
| 561 | Will Norris | 27 | 745113600 | 1993/08/12 | Premier League | 2018/2019 | Goalkeeper | Wolverhampton Wanderers | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| 570 | Zechariah Medley | 20 | 962928000 | 2000/07/07 | Premier League | 2018/2019 | Defender | Arsenal | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| 571 | Zeze Steven Sessegnon | 20 | 958608000 | 2000/05/18 | Premier League | 2018/2019 | Defender | Fulham | 0 | 0 | ⋯ | 0.00 | 0 | 0 | 0 | 0 | 0.00 | -1 | -1 | -1 | -1 |
| 572 | Łukasz Fabiański | 35 | 482630400 | 1985/04/18 | Premier League | 2018/2019 | Goalkeeper | West Ham United | 3420 | 1710 | ⋯ | 1.26 | 71 | 90 | 0 | 0 | 0.00 | 391 | 343 | 81 | 19 |
"position"が"Defender"かつ"age"が20以下のgoals_overall(得点数)であれば
df[(df$position == "Defender") & (df$age <= 20), 'goals_overall']となります。
[40]:
# Defenderかつ20歳以下の選手のgoals_overall(総ゴール数)
df[(df$position == "Defender") & (df$age <= 20), "goals_overall"]
- 0
- 0
- 0
- 2
- 0
- 0
今後の講義では複数のデータを比較することが多くなるので、このような形でデータをいくつか抽出し、統計的に比較を行う関数に適用する、という流れが多くなるかと思います。
2.8. 関数の作成
logやsummary, read.csv等、様々な関数を使用してきましたが、Rでは自分独自の関数を作ることも出来ます。
自作の関数を作るには、functionという関数を使用します。
例えば平均値を計算するmeanという関数を自作するコードを書くと以下の様になります。
mean_zisaku <- function(x) {
goukei <- sum(x) # 合計値を計算
ans <- goukei / length(x) # 要素の数で合計値を割る
return(ans) # 計算結果を返す
}
[41]:
mean_zisaku <- function(x) {
goukei <- sum(x)
ans <- goukei / length(x)
return(ans)
}
mean関数と今回作成したmean_zisaku関数で結果が同じになるか確認してみましょう。
x <- c(12, 14, 18, 26, 30)
mean(x) または mean_zisaku(x)
[42]:
# mean_zisaku関数の使用
x <- c(12, 14, 18, 26, 30)
mean_zisaku(x)
2.9. パッケージの利用
自分で関数を作ることが出来るということを説明しましたが、他の人が作った関数を利用することも出来ます。
初期状態のRでも様々な統計手法を扱うことは可能ですが、他の人が作成した関数を活用することでより多様な・高度な統計解析を行うことが可能になります。
その様な関数はパッケージという形で用意されています。機械学習用の関数がまとめられたパッケージや、ゲノム配列を処理する関数がまとめられたパッケージ、グラフ描写の関数がまとめられたパッケージなど、目的に応じた様々なパッケージがあります。
参考: パッケージ一覧
パッケージを利用する手順は下記の順になります。
目的のパッケージをインストールする
パッケージを読み込む
パッケージにまとめられていた関数が使用可能になる
まず、パッケージのインストールですが、install.packages("欲しいパッケージ名")という関数でインストールできます。
今回はggplot2というグラフ描写用のパッケージをインストールしてみましょう。
install.packages("ggplot2")でインストールできます。
[43]:
install.packages("ggplot2")
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
続いて、インストールしたパッケージに含まれる関数を使用するには、パッケージを読み込ませる必要があります。
library(パッケージ名)関数で読み込めます。
今回のパッケージにはggplot()という関数が入っていますが、パッケージを読み込まずに、ggplot()と入力すると…
[44]:
ggplot()
Error in ggplot(): could not find function "ggplot"
Traceback:
エラーが出たかと思います。
まずlibrary(ggplot2)と書いてパッケージを読み込ませてから、
ggplot()関数を使用するとちゃんと使えるようになっているのが分かるかと思います。
[45]:
library(ggplot2)
ggplot()
今回はggplot()関数で白いキャンバスを描いただけですが、ggplot2は非常に強力なグラフ描写パッケージです。
また今後の講義でこのパッケージの使い方は扱う予定です。
講義の前半部分はRにもともと備わっている統計手法の関数で十分事足りますが、
高度な線形モデルや機械学習を扱う際に、そういった解析が容易に行えるパッケージを使用する予定です。
2.10. 課題と今後の課題の提出方法
今後の講義の課題の一部は、Google Colaboratoryで課題を解き、提出してもらう場合があります。
課題のノートブックを開く
課題を解く(コードを記述し、実行して結果を表示する)
2.を実行した状態のページをPDFとして保存
左上のファイル→印刷→PDFに保存
このPDFをPandaから提出してもらう形になります。
