Rでのエラー解決 「’x’ must be a numeric vector」

パソコン

はじめに

Rでは、間違った部分が存在すると、エラーが生じます。

最初の頃は、そのエラーだけで何日も費やすことがありますので、エラーとその解決策を今後の方のために残していきたいと思います。

R言語とはプログラミング言語の一つです。特に統計解析に強いとされます。さらにDeep learningの分野でも注目を浴びています。

Rでのエラーでよく出会うものを選んで、その原因と解決法を載せていきたいと思います。

Rをはじめよう生命科学のためのRStudio入門

Rでのエラー原因 「’x’ must be a numeric vector」

Rは、エクセルのように、文字列であるのか、数値であるのか認識して動きます。

今回は、数値として扱いたいのに、文字列で記入されていた場合などがこのエラーの原因となります。

例えば、身長と体重の相関を取りたいとします。

height <- c(162,180,167,173,168)
weight <- c(57,78,73,58,62)
dat <- data.frame(HEIGHT=height, WEIGHT=weight)

cor.test(dat[,1],dat[,2])

Pearson's product-moment correlation

data: dat[, 1] and dat[, 2]

t = 1.3152, df = 3, p-value = 0.2799

alternative hypothesis: true correlation is not equal to 0

95 percent confidence interval:

-0.5949707 0.9696545

sample estimates:

cor 0.6047347

上記のように、計算できます。

しかし、作成したデータが、文字列データであれば

height <- c(“162″,”180″,”167″,”173″,”168”) #文字列になっている
weight <- c(57,78,73,58,62)
dat <- data.frame(HEIGHT=height, WEIGHT=weight)

cor(dat[,1],dat[,2])

cor.test.default(dat[, 1], dat[, 2]) でエラー:
‘x’ must be a numeric vector

となります。

Rでのエラー解決 「’x’ must be a numeric vector」

もう一度、入力しなおしても良いですが、大量のデータを書き換えるのは大変です。

dat <- as.data.frame(sapply(dat, as.numeric))

上記を使えば、一発で解決できます。

Rの基本的なことであれば、下記の本がオススメです。

2016年に第3版が出ました。少し古いですが、基本が網羅されています。レビューも高評価。

基本ネットで調べれば出てきますが、本として包括的なテキストを持つことは、便利で私は一冊持っておくのが役立っています。

立ち読みも出来ますので、下記リンクから立ち読みしてみてください。

The R Tips 第3版: データ解析環境Rの基本技・グラフィックス活用集

こちらも高評価かつ新しい本になります。特に初心者におすすめの内容です。

知りたい内容があるか、目次で確認してもらえるので、必要であるか確認してみてください。

Rをはじめよう生命科学のためのRStudio入門

コメント

タイトルとURLをコピーしました