R言語基礎

R言語基礎
============================

R言語は、統計解析やデータマイニングなどの数値計算を行うためのプログラミング言語です。オープンソースであり、無償で利用可能です。特に、ビッグデータ解析や機械学習に向いており、業界においても広く使われています。

R言語を利用する際には、RStudioと呼ばれるIDEが有用です。RStudioにはコードエディタ、コンソール、グラフィックス等々、開発に必要なすべての機能が備わっています。

また、CRANと呼ばれるパッケージリポジトリから様々なパッケージをダウンロードできます。これらのパッケージはとても豊富で、統計解析や可視化などの機能が追加されるため、多くの人々に利用されています。

R言語は記述されたプログラムを処理することができます。次のような操作が可能です。

データの抽出、変換、加工が可能
基礎的な数学演算、代数式、三角関数、対数関数、指数関数などが使える
グラフの描画、集計結果の可視化が可能
制御文（if/else, for, while）により処理フローを制御できる
R言語の特徴の一つに「ベクトル」という概念があります。任意の長さのデータの集合について、全体に対して一括で演算を行うことができます。これによって、PythonやJavaなどの言語よりも乗算や和を一括で実行できます。そのため、統計解析に於ける配列の扱いを極める事ができ、非常に便利な言語です。

R言語はベクトル化されているためCPUに対して効率的に演算処理がされるため高速な計算を行うことができますが、メモリ容量がPCやサーバに依存し、数GB以上のデータを保持するのに限界があることが欠点です。しかし、並列计算を使って問題を分散させたり、さまざまな高度な技術を使用してこの制限を克服することが可能です。

Rのインストール
--------

公式ウェブサイトであるThe Comprehensive R Archive Network (CRAN)のウェブサイトを開く。https://cran.r-project.org/
左側のメニューから「Download」をクリックし、その後マシンのOSバージョンと一致するR言語パッケージをダウンロードする。

R言語は誰に必要か？
==========

R言語は、データサイエンティスト、統計学者、研究者が主に統計処理、グラフィックスを得意に使用するプログラミング言語です。 大量のデータを扱う場合や高度な統計解析を行う場合に役立ちます。したがって、大量のデータを取り扱ったり、複雑な統計計算を実行する人は、R言語を学ぶことで利益を得ることができます。さらに、Rはオープンソースソフトウェアであり、商用ソフトウェアパッケージにアクセスできないスタートアップ企業、小規模ビジネス、研究者、そして学生にとっても魅力的な選択肢となります。

データ型
----

R言語には他のプログラミング言語同様、複数のデータ型が存在しています。以下は、最も一般的なもののいくつかです。

### Numeric

Numeric型は、数値を表現するために使用されます。たとえば:

```R
# Numeric型の変数に数値を代入する
x <- 3.14
```

### Integer

Integer型は整数であり、小数点以下がない数値です。 R言語では、単純な数値に "L" を追加することで、Integers型を定義できます。次に例を示します。

```R
# Integers型の変数に数値を代入する
y <- 12L
```

### Character

Character型はテキストを表現するために使用されます。これらはシングルクオーテーションまたはダブルクオーテーションで囲うことができます。たとえば：

```R
# Character型の変数にテキストを代入する
z <- "hello, world!"
```

### Logical

Logical型は、真偽値を表現するために使用されます。R言語では、TRUEおよびFALSE（大文字注意）が論理値を表現します。たとえば：

```R
# Logical型の変数に論理符号を代入する
w <- TRUE
```


変数
---

変数は、Rで値を保存するために使用されます。変数に値を割り当てるには、矢印演算子（「<-」）または等号（「=」）を使用します。たとえば：

```R
# Assigning a value to a variable using the arrow operator
x <- 3.14

# Assigning a value to a variable using the equals sign
y = 12L
```

Rは大文字と小文字を区別するため、"x"と"X"は2つの異なる変数であることに注意してください。

関数
--

関数は特定のタスクを実行するコードブロックです。 Rには多くの組み込み関数があり、独自の関数も作成できます。以下は、Rで組み込み関数を使用する例です。

```R
# Using the sqrt() function to find the square root of a number
sqrt(25)
```

このコードは値5を返します（25の平方根）。

制御構造
----

制御構造は、コードのフローを制御するために使用されます。制御構造には、if / else文、forループ、whileループの3つの主要な種類があります。

### If / Else Statements

if / else文は、特定の条件に基づいてコードを実行するために使用されます。例えば：

```R
# Using an if/else statement to determine whether a variable is greater than 10
if (x > 10) {
  print("x is greater than 10")
} else {
  print("x is less than or equal to 10")
}
```

### For Loops

forループは、値のシーケンスを繰り返し処理するために使用されます。たとえば、このコードは1から10までの数字を表示します。

```R
# Using a for loop to iterate over a sequence of values
for (i in 1:10) {
  print(i)
}
```

### While Loops

whileループは、特定の条件が真である間、コードブロックを繰り返し実行するために使用されます。例えば：

```R
# Using a while loop to repeat a block of code while x is less than 100
while (x < 100) {
  x <- x + 10
  print(x)
}
```

このコードは、ループが実行されるたびにxの値に10を加算し、更新された値を出力します。xが100以上になるまでループは続きます。


データセットの読み込み
-----------

まず、ファイルからデータセットを読み込むことから始めましょう。 R では、`read.csv()` 関数を使用して CSV ファイルを読み取ります。次の例は、 `vehicle.csv` という名前のファイルを読み取る方法を示しています。データフレームを作成し、内容を表示します。

```R
# CSV ファイルを読み取り、データフレームを作成する例
mydata <- read.csv("vehicle.csv")
View(mydata)
```

データの抽出
------

R を使うと、データフレーム内の特定の列または行を選択して抽出することができます。例えば、次のコードでは `mydata` 内の `mpg` 列を抜き出し、新しいオブジェクト `first_column` に割り当てています。

```R
# データフレームから1つの列を選択する例
first_column <- mydata$mpg
```

または、次のようにデータフレームの一部分を抽出して、変更されるデータフレームを作成することもできます。

```R
# 次の列を選択する例：mpg, cyl, hp, wt
subset_data <- subset(mydata, select=c(mpg, cyl, hp, wt))
```

データの変換
------

データを変換する必要がある場合があります。例えば、整数値を小数値に変換したり、文字列を日付データ型に変換したりすることができます。

```R
# 文字列を数値に変換する例
mydata$mpg <- as.numeric(as.character(mydata$mpg))

# 文字列を日付に変換する例
mydata$date <- as.Date(mydata$date, "%m/%d/%Y")
```

データフレームの結合
----------

複数のデータフレームをメインのデータフレームに結合することができます。この例では、 `merge()` 関数を使用して、2つの異なるデータフレーム `mydata1` と `mydata2` を結合する方法を示します。これにより、`mydata_merged` という新しいデータフレームが作成されます。

```R
# データフレームを結合する例
mydata_merged <- merge(mydata1, mydata2, by="id")
```

これらは、R 言語でデータの抽出、変換、加工するための基本的なテクニックのいくつかです。データ分析では、R 言語を活用することで、簡単でスムーズな操作が可能です。