```{r setup, echo=FALSE}
knitr::opts_chunk$set(echo = TRUE,
                      message = FALSE,
                      warning = FALSE)
```

# 1.1 R入門

---

## 計算操作 (Arithmetic Operations)

* Rは強力な計算機として使用できる。

```{r}
# 基本的な四則演算
5 + 3
5 - 3
5 / 3

# べき乗と関数の使用
5 ^ 3
sqrt(4)
```

# 1.2 オブジェクト (Objects)

---

## オブジェクトの作成と上書き

* `<-` を用いて、計算結果やデータを名前付きの「オブジェクト」として保存する。

```{r}
result <- 5 + 3
result

# 文字列の保存
kosuke <- "instructor"
kosuke
```

* オブジェクトは後から上書きできる。また、大文字と小文字は区別される（`result` と `Result` は別物）。

# 1.3 ベクトル (Vectors)

---

## ベクトルの作成

* `c()` 関数（concatenate）を用いて、複数の要素をひとまとめにした「ベクトル」を作成する。

```{r}
# 世界人口データ（千人単位）
world.pop <- c(2525779, 3026003, 3691173, 4449049, 
               5320817, 6127700, 6916183)
world.pop
```

---

## 要素の抽出

* `[]` を用いてベクトルの一部を取り出すことができる。

```{r}
# 2番目の要素を取り出す
world.pop[2]

# 2番目と4番目を取り出す
world.pop[c(2, 4)]

# 3番目以外のすべての要素を取り出す
world.pop[-3]
```

# 1.4 関数 (Functions)

---

## 組み込み関数の使用

* Rには多くの関数が用意されている。

```{r}
# 長さ、最小値、最大値、平均
length(world.pop)  
min(world.pop)     
max(world.pop)     
mean(world.pop)    
```

---

## カスタム関数の作成

* 自分で独自の関数を定義することもできる。

```{r}
# 独自の要約関数
my.summary <- function(x){ 
  s.out <- sum(x)
  l.out <- length(x)
  m.out <- s.out / l.out
  out <- c(s.out, l.out, m.out)
  names(out) <- c("sum", "length", "mean")
  return(out)
}
my.summary(world.pop)
```

# 1.5 データファイル (Data Files)

---

## CSVファイルの読み込み (1)

* `read.csv()` 関数を用いて、外部のデータセットをRに読み込む。
* 原則として、データファイル（`UNpop.csv` など）を作業ディレクトリに保存して読み込むことが推奨される。

\scriptsize
```{r}
# 1. ローカルに保存したUNpopデータの読み込み（推奨）
UNpop <- read.csv("UNpop.csv") 

# （参考）URLから直接読み込むことも可能
# UNpop <- read.csv("https://ayumu-tanaka.github.io/QSS/QSS_Data/UNpop.csv")

# データフレームの次元（行数・列数）を確認
dim(UNpop)
```
\normalsize

---

## CSVファイルの読み込み (2)

* 読み込んだデータの中身を `head()` で確認します。

\scriptsize
```{r}
# 最初の3行を表示
head(UNpop, n = 3)
```
\normalsize

---

## データフレームからの変数の抽出

* `$` 演算子を用いて、特定の列（変数）にアクセスする。

```{r}
# world.pop変数の抽出
UNpop$world.pop
```

* 特定の行や列にインデックス `[行, 列]` でアクセスすることも可能。

```{r}
# 1〜3行目のすべての列
UNpop[1:3, ]
```

# 1.6 パッケージ (Packages)

---

## Rパッケージの利用

* **パッケージ**をインストールすることで、Rの機能を拡張できる。
* 例：`foreign` パッケージを用いて、Stata (`.dta`) や SPSS (`.sav`) などの他ソフトウェアのデータを読み書きする。

```{r, eval=FALSE}
# インストール（初回のみ）
install.packages("foreign")

# パッケージの読み込み
library(foreign)
```

# 1.7 まとめ

---

## 第1章のまとめ

* **RとRStudio**の基本的な操作方法を習得した。
* **オブジェクト**と**ベクトル**を用いたデータの保存と操作方法を学んだ。
* 組み込み関数や自作関数を用いて、データを要約する方法を理解した。
* `read.csv()` を用いてデータフレームを読み込み、操作する方法を学んだ。
* データ分析に必要な基礎的なコーディングスキルを身につけた。
