16  ベクトル(型変換)(L20)

ここでは、ベクトルの型変換について解説していきます。 まず、ベクトルをつくりましょう。

a <- c("1","2","3","4","5")

足し算を行う方法を覚えていますか?

1 + 10 #OK

"1" + 10 #NG

ここで、aに10を足したらどうなるでしょうか?

a + 10
Error in a + 10: non-numeric argument to binary operator

もちろん、文字列型に数字型を足す計算をすることはできないので、エラーになりますね?

ここまでの知識を利用して、「足し合わせる方法」思いつきますか?少し動画をとめて考えてみてください。

できましたか?

as.numeric("1") + 10  
[1] 11

で、型変換を行って数字型にしてから10を足してあげれば無事に計算できました

同じことを、ベクトルaに対してやってみましょう

as.numeric(a)
[1] 1 2 3 4 5
as.numeric(a) + 10
[1] 11 12 13 14 15

できました!

もちろん、

b <- as.numeric(a)
b + 10
[1] 11 12 13 14 15

としても同じ結果になります。

型変換を行う場合の注意点としては、次のようなベクトルがあったとして、

a <- c("1","2","3","4","5","4","3","2","1","O","1","2")

as.numeric(a)
Warning: NAs introduced by coercion
 [1]  1  2  3  4  5  4  3  2  1 NA  1  2

Warning/警告 が表示されました。 実行結果も、

[1] 1 2 3 4 5 4 3 2 1 NA 1 2

なぜかNA,欠損値が含まれています。

実は、

a
 [1] "1" "2" "3" "4" "5" "4" "3" "2" "1" "O" "1" "2"

の10番目の要素、0(ゼロ)に見えますが、アルファベットのO(オー)でした。

型変換を行う場合に、数字に変換できないものが混ざっている場合に、警告メッセージが表示されるので、警告が出ないはずなのに、警告がでていると何らかの入力ミスが含まれている可能性があるのでご注意ください。

このような意図しない動作の対応方法については実際のデータ処理のセクションで後々解説します。

今は、引き続き、ベクトルについて解説を続けていきます。

次の動画では、ベクトル同士の計算方法について解説していきます。