hako1 <- 3
hako2 <- 4
hako3 <- 5
hako4 <- 6
hako5 <- 7hako1からhako5まで5つの変数を作成します。
5つの変数をつくってみました。 変数同士で計算することができるので、全部の箱の値を足して、新しい変数にその結果を代入したい場合は、次のように書きます。
hako_dai <- hako1 + hako2 + hako3 + hako4 + hako5 hako_dai
できましたか?
::: {.cell}
```{.r .cell-code}
rm(list=ls())
:::
今度は文字列をいれてみましょう
hako1 <- "hello"
hako2 <- "world"文字列が入った箱同士を足すことが可能でしょうか?
hako1 + hako2Error in hako1 + hako2: non-numeric argument to binary operator
はい、だめですね。数値でないと怒られました。
文字列型はそのままでは計算できません。なので、例え、数字っぽく見えようと、計算できません。
hako <- "5"
hako + hako Error in hako + hako: non-numeric argument to binary operator
これもだめです。
変数の中身が、「数字のつもり」なのに、「文字列型になってしまっている」ケースが今後、実際に分析を行う中で多々発生します。
そういうケースでは型を変換する関数を利用します。
今回の場合は、文字列型を数字型に変換したいので、
as.numeric("5")[1] 5
こんな風に、as.numeric関数を利用しましょう。
文字列が数字と解釈できる場合は、数字に変換してくれます。
ただし、人間が見たら明らかに数字と思われるものでも、as.numericは柔軟に対応することはできません。
as.numeric(“5.12”) as.numeric(“5000”) as.numeric(“5,000”) as.numeric(“1/2”)
5,000は余分なカンマが入っているのでダメですし、
1/2は0.5と人ならわかりますがコンピューターにとっては1スラッシュ2という文字列なので数字への変換はできません。
変換できない場合は、NA(Not Available、欠損値)へと変換されます。
後は、数字を文字列型に変換する場合に使う関数は、
as.character(1000)
as.character関数です。
以上、Rの基本としての変数と型変換の話でした。