第3回 Rの基本的な操作とベクトル操作
関西大学総合情報学部
2024-04-25
[1] 6
^
)を除き、演算子の前後にはスペースを入れるのがRの流儀
演算子 | 意味 | 例 | 結果 |
---|---|---|---|
+ |
和 | 2 + 5 |
7 |
- |
差 | 2 - 8 |
-6 |
* |
積 | 7 * 3 |
21 |
/ |
商 | 16 / 5 |
3.2 |
^ 、** |
累乗(べき乗) | 2^3 または2 ** 3 |
8 |
%% |
剰余 (モジュロ) | 18 %% 7 |
4 |
%/% |
整数商 | 18 %/% 7 |
2 |
TRUE
)か偽(FALSE
)の値を返す演算子=
でなく、==
であることに注意すること
=
は代入演算子として機能する(他の言語と同じ)。演算子 | 意味 | 例 | 結果 |
---|---|---|---|
x < y |
x はy より小さい |
3 < 1 |
FALSE |
x <= y |
x はy と等しいか、小さい |
2 <= 2 |
TRUE |
x > y |
x はy より大きい |
6 > 5 |
TRUE |
x >= y |
x はy と等しいか、大きい |
4 >= 5 |
FALSE |
x == y |
x とy は等しい |
(2 + 3) == (4 + 1) |
TRUE |
x != y |
x とy は等しくない |
((2 * 3) + 1) != (2 * (3 + 1)) |
TRUE |
&
&
を挟む左右の両側がTRUE
の場合のみTRUE
を返す[1] FALSE
[1] TRUE
|
|
を挟む左右の片側、あるいは両側がTRUE
の場合のみTRUE
を返す123454321
をコピーし貼り付けながら計算を繰り返す123454321
にx
という名前を付けて、x * 1
のように表記するベクトル(vector): Rにおけるデータの最小単位
c()
関数で作成
()
の中にベクトルの要素を入力,
(半角コンマ)で区切る。
,
の後ろには半角スペースを入れるとコードが読みやすくなる(前は不要)。c()
は省略可能
x <- cat("cat")
でも、x <- "cat"
でも良い<-
演算子で格納
ベクトル名
という名前のオブジェクト(object)が生成され、作業環境内に保存される。例1: 要素が1, 2, 3, 4, 5の長さ5の数値型ベクトル
my_vector1
という名前で作業環境に格納例2: 要素が”Cat”, “Lion”, “Tiger”の長さ3の文字型ベクトルをmy_vector2
という名で格納
"
か'
で囲む基本的にオブジェクト名は何でも良いが、いくつかの禁則事項がある
_
と.
)
_
か.
が使われるが、_
を推奨_
、.
で始まるオブジェクト名は使えないfor
やif
など)
ls()
を入力オブジェクト名のみ入力(print(オブジェクト名)
もOK)
[1] 1 2 3 4 5
[1] "Cat" "Lion" "Tiger"
コードは一行増えたものの、全体的にはコードの量が著しく減る。
公差 = 1の等差数列
:
演算子を利用例) ベクトルX
とベクトルY
同士の演算
X
の長さ = Y
の長さX
の長さ \(\neq\) Y
の長さ参考) ベクトルの長さの求め方
length()
関数を使用ベクトル/位置 | 1番目 | 2番目 | 3番目 | 4番目 | 5番目 | 6番目 |
---|---|---|---|---|---|---|
my_vec1 |
1 | 2 | 3 | 4 | 5 | 6 |
\(\times\) | \(\times\) | \(\times\) | \(\times\) | \(\times\) | \(\times\) | |
my_vec2 |
0 | 1 | 2 | 0 | 1 | 2 |
結果 | 0 | 2 | 6 | 0 | 5 | 12 |
my_vec4
の方が短いため、足りない分(太字の部分)はリサイクルされる。ベクトル/位置 | 1番目 | 2番目 | 3番目 | 4番目 | 5番目 | 6番目 |
---|---|---|---|---|---|---|
my_vec3 |
1 | 2 | 3 | 4 | 5 | 6 |
\(\times\) | \(\times\) | \(\times\) | \(\times\) | \(\times\) | \(\times\) | |
my_vec4 |
0 | 1 | 0 | 1 | 0 | 1 |
結果 | 0 | 2 | 0 | 4 | 0 | 6 |
結果はどのコードでも同じ
[1] 246908642 370362963 493817284 617271605 740725926 864180247
[7] 987634568 1111088889 1234543210 1357997531 1481451852 1604906173
[13] 1728360494 1851814815 1975269136 2098723457 2222177778 2345632099
[19] 2469086420 2592540741 2715995062 2839449383 2962903704 3086358025
[25] 3209812346 3333266667 3456720988 3580175309 3703629630 3827083951
[31] 3950538272 4073992593 4197446914 4320901235 4444355556 4567809877
[37] 4691264198 4814718519 4938172840 5061627161 5185081482 5308535803
[43] 5431990124 5555444445 5678898766 5802353087 5925807408 6049261729
[49] 6172716050 6296170371 6419624692 6543079013 6666533334 6789987655
[55] 6913441976 7036896297 7160350618 7283804939 7407259260 7530713581
[61] 7654167902 7777622223 7901076544 8024530865 8147985186 8271439507
[67] 8394893828 8518348149 8641802470 8765256791 8888711112 9012165433
[73] 9135619754 9259074075 9382528396 9505982717 9629437038 9752891359
[79] 9876345680 9999800001 10123254322 10246708643 10370162964 10493617285
[85] 10617071606 10740525927 10863980248 10987434569 11110888890 11234343211
[91] 11357797532 11481251853 11604706174 11728160495 11851614816 11975069137
[97] 12098523458 12221977779 12345432100 12468886421 12592340742 12715795063
[103] 12839249384 12962703705 13086158026 13209612347 13333066668 13456520989
[109] 13579975310 13703429631 13826883952 13950338273 14073792594 14197246915
[115] 14320701236 14444155557 14567609878 14691064199 14814518520 14937972841
[121] 15061427162 15184881483 15308335804 15431790125 15555244446 15678698767
[127] 15802153088 15925607409 16049061730 16172516051 16295970372 16419424693
[133] 16542879014 16666333335 16789787656 16913241977 17036696298 17160150619
[139] 17283604940 17407059261 17530513582 17653967903 17777422224 17900876545
[145] 18024330866 18147785187 18271239508 18394693829 18518148150 18641602471
[151] 18765056792 18888511113 19011965434 19135419755 19258874076 19382328397
[157] 19505782718 19629237039 19752691360 19876145681 19999600002 20123054323
[163] 20246508644 20369962965 20493417286 20616871607 20740325928 20863780249
[169] 20987234570 21110688891 21234143212 21357597533 21481051854 21604506175
[175] 21727960496 21851414817 21974869138 22098323459 22221777780 22345232101
[181] 22468686422 22592140743 22715595064 22839049385 22962503706 23085958027
[187] 23209412348 23332866669 23456320990 23579775311 23703229632 23826683953
[193] 23950138274 24073592595 24197046916 24320501237 24443955558 24567409879
[199] 24690864200
ベクトルから任意の要素を抽出する2つの方法
例) 11, 12, 13, …, 19, 20が格納されたmy_vec5
位置 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
my_vec5 |
11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
ベクトル名[抽出する要素の位置]
例1) my_vec5
の3番目の要素
例2) my_vec5
の2, 3, 4, 5番目の要素
[]
内に抽出する要素の位置を表すベクトルを指定pos_vec
、c(2, 3, 4, 5)
、seq(2, 5, by = 1)
、2:5
はすべて同じ意味TRUE
)しないか(FALSE
)を指定例1) my_vec5
から1, 4, 7, 9, 10番目の要素を抽出
[]
内にベクトルの長さ分のベクトルを更に入力する必要があるため、あまり使わない方法# my_vec5[c(1, 4, 7, 9, 10)] と同じ結果
my_vec5[c(TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, TRUE, FALSE, TRUE, TRUE)]
[1] 11 14 17 19 20
例2) my_vec5
から奇数のみ抽出(論理演算子の利用)
{tidyverse}パッケージが提供するread_csv()
関数を利用
オブジェクト名 <- read_csv("パスを含むファイル名")
Data
という名の下位フォルダーがあり、その中にPref_Vote.csv
が保存されている場合。
"Data/Pref_Vote.csv"
Pref_Vote.csv
)はLMSから入手注意:read_csv()
とread.csv()
は区別しよう。
両方.csv
形式データを読み込む関数であるが、read.csv()
はR内蔵関数、read_csv()
は{tidyverse}を読み込まないと使用できない関数である。後者の方が見やすいメリットがある。本講義ではread_csv()
のみを使用する。課題の際、read.csv()
関数を使うと減点とする。
オブジェクト名
、またはprint(オブジェクト名)
# A tibble: 47 × 13
ID Pref Zaisei Over65 Under30 Jimin Minshin Komei Kyosan Ishin Shamin
<dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1 北海道 0.419 29.1 24.7 32.8 30.6 13.4 3.43 11.4 1.68
2 2 青森県 0.332 30.1 23.9 40.4 24.6 12.8 3.82 8.92 3.41
3 3 岩手県 0.341 30.4 24.5 34.9 22.4 8.61 5.16 11.2 5.29
4 4 宮城県 0.596 25.8 27.3 36.7 25.4 13.4 3.97 9.99 3.62
5 5 秋田県 0.299 33.8 21.4 43.5 22.7 11.2 5.17 7.56 5.12
6 6 山形県 0.342 30.8 24.8 42.5 21.5 11.8 4.3 7.6 5.2
7 7 福島県 0.509 28.7 25.2 33.8 28.3 11.0 3.43 10.4 3.24
8 8 茨城県 0.633 26.8 26.6 40.6 19.0 15.0 6.67 10.1 2.88
9 9 栃木県 0.622 25.9 26.8 38.8 21.6 12.4 10.9 7 2.05
10 10 群馬県 0.603 27.6 26.6 42.1 19.3 13.8 5.61 10 2.44
# ℹ 37 more rows
# ℹ 2 more variables: Region2 <dbl>, Region6 <dbl>
1行目
# A tibble: 47 × 13
最終行
Region2
とRegion6
は画面では省略されている。
# … with 37 more rows, and 2 more variables: Region2 <dbl>, Region6 <dbl>
オブジェクト名
、またはprint(オブジェクト名)
# A tibble: 47 × 13
ID Pref Zaisei Over65 Under30 Jimin Minshin Komei Kyosan Ishin Shamin
<dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1 北海道 0.419 29.1 24.7 32.8 30.6 13.4 3.43 11.4 1.68
2 2 青森県 0.332 30.1 23.9 40.4 24.6 12.8 3.82 8.92 3.41
3 3 岩手県 0.341 30.4 24.5 34.9 22.4 8.61 5.16 11.2 5.29
4 4 宮城県 0.596 25.8 27.3 36.7 25.4 13.4 3.97 9.99 3.62
5 5 秋田県 0.299 33.8 21.4 43.5 22.7 11.2 5.17 7.56 5.12
6 6 山形県 0.342 30.8 24.8 42.5 21.5 11.8 4.3 7.6 5.2
7 7 福島県 0.509 28.7 25.2 33.8 28.3 11.0 3.43 10.4 3.24
8 8 茨城県 0.633 26.8 26.6 40.6 19.0 15.0 6.67 10.1 2.88
9 9 栃木県 0.622 25.9 26.8 38.8 21.6 12.4 10.9 7 2.05
10 10 群馬県 0.603 27.6 26.6 42.1 19.3 13.8 5.61 10 2.44
# ℹ 37 more rows
# ℹ 2 more variables: Region2 <dbl>, Region6 <dbl>
print(オブジェクト名, n = 行数)
# A tibble: 47 × 13
ID Pref Zaisei Over65 Under30 Jimin Minshin Komei Kyosan Ishin Shamin
<dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1 北海道 0.419 29.1 24.7 32.8 30.6 13.4 3.43 11.4 1.68
2 2 青森県 0.332 30.1 23.9 40.4 24.6 12.8 3.82 8.92 3.41
3 3 岩手県 0.341 30.4 24.5 34.9 22.4 8.61 5.16 11.2 5.29
4 4 宮城県 0.596 25.8 27.3 36.7 25.4 13.4 3.97 9.99 3.62
5 5 秋田県 0.299 33.8 21.4 43.5 22.7 11.2 5.17 7.56 5.12
6 6 山形県 0.342 30.8 24.8 42.5 21.5 11.8 4.3 7.6 5.2
7 7 福島県 0.509 28.7 25.2 33.8 28.3 11.0 3.43 10.4 3.24
8 8 茨城県 0.633 26.8 26.6 40.6 19.0 15.0 6.67 10.1 2.88
9 9 栃木県 0.622 25.9 26.8 38.8 21.6 12.4 10.9 7 2.05
10 10 群馬県 0.603 27.6 26.6 42.1 19.3 13.8 5.61 10 2.44
11 11 埼玉県 0.765 24.8 27.7 32.3 20.4 16 7.23 13.9 1.91
12 12 千葉県 0.777 25.9 26.7 37.8 21.7 14.0 5.46 11.3 2.01
13 13 東京都 1.00 22.7 27.4 34.4 19.8 11.4 7.34 14.2 2.82
14 14 神奈川県 0.917 23.9 27.8 34.9 21.5 12.2 7.77 12.5 2.79
15 15 新潟県 0.435 29.9 25.2 43.7 25.2 8.27 4.39 8 3.76
# ℹ 32 more rows
# ℹ 2 more variables: Region2 <dbl>, Region6 <dbl>
tail(オブジェクト名)
# A tibble: 6 × 13
ID Pref Zaisei Over65 Under30 Jimin Minshin Komei Kyosan Ishin Shamin
<dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 42 長崎県 0.316 29.6 25.8 41.7 20.7 16.9 5.12 6.27 3.48
2 43 熊本県 0.387 28.8 27.2 46.5 19.3 15.3 4.53 6.32 2.6
3 44 大分県 0.358 30.4 25.6 39.4 18.4 13.3 4.42 6.85 13.0
4 45 宮崎県 0.320 29.5 26.3 40.1 14.5 17.1 5.74 7.27 6.81
5 46 鹿児島県 0.321 29.4 26.0 46.0 16.2 14.5 6.47 6.52 3.62
6 47 沖縄県 0.315 19.6 33.4 27.8 13.3 15.1 7.66 15.6 12.1
# ℹ 2 more variables: Region2 <dbl>, Region6 <dbl>
tail(オブジェクト名, n = 行数)
head()
で使うと最初のn
行の出力も可能# A tibble: 10 × 13
ID Pref Zaisei Over65 Under30 Jimin Minshin Komei Kyosan Ishin Shamin
<dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 38 愛媛県 0.412 30.6 24.8 43.6 19.3 14.8 6.77 6.97 2.4
2 39 高知県 0.245 32.8 23.6 37.0 17.0 15.8 3.93 17.4 2.91
3 40 福岡県 0.618 25.9 28.2 36.5 19.1 17.2 7.03 10.8 3.33
4 41 佐賀県 0.329 27.7 28.0 43.5 21.1 15.5 4.85 5.67 4.16
5 42 長崎県 0.316 29.6 25.8 41.7 20.7 16.9 5.12 6.27 3.48
6 43 熊本県 0.387 28.8 27.2 46.5 19.3 15.3 4.53 6.32 2.6
7 44 大分県 0.358 30.4 25.6 39.4 18.4 13.3 4.42 6.85 13.0
8 45 宮崎県 0.320 29.5 26.3 40.1 14.5 17.1 5.74 7.27 6.81
9 46 鹿児島県 0.321 29.4 26.0 46.0 16.2 14.5 6.47 6.52 3.62
10 47 沖縄県 0.315 19.6 33.4 27.8 13.3 15.1 7.66 15.6 12.1
# ℹ 2 more variables: Region2 <dbl>, Region6 <dbl>
.csv
以外の表形式データ.csv
形式ファイルは表形式データの定番であり、標準
ソフトウェア名 | 拡張子 | 使用パッケージ | 関数 |
---|---|---|---|
Microsoft Excel | .xls 、.xlsx |
{readxl} | read_excle() |
LibreOffice / OpenOffice | .ods |
{readODS} | read_ods() |
SPSS | .sav |
{haven} | read_stata() |
Stata | .dta |
{haven} | read_spss() |
SAS | .sas7bdat |
{haven} | read_sas() |