R エラーの修正方法: 連続スケールで提供される離散値


R で発生する可能性のあるエラーは次のとおりです。

 Error: Discrete value supplied to continuous scale

このエラーは、ggplot2 の軸に連続スケールを適用しようとしたときに、その軸の変数が数値でない場合に発生します。

このチュートリアルでは、このエラーを修正する方法を正確に説明します。

エラーを再現する方法

R に次のデータ フレームがあるとします。

 #create data frame
df = data. frame (x = 1:12,
                y = rep(c('1', '2', '3', '4'), times= 3 ))

#view data frame
df

    xy
1 1 1
2 2 2
3 3 3
4 4 4
5 5 1
6 6 2
7 7 3
8 8 4
9 9 1
10 10 2
11 11 3
12 12 4

ここで、 scale_y_continuous()引数を使用して、カスタムの y 軸スケールで散布図を作成しようとするとします。

 library (ggplot2)

#attempt to create scatterplot with custom y-axis scale
ggplot(df, aes (x, y)) +
  geom_point() +
  scale_y_continuous(limits = c(0, 10))

Error: Discrete value supplied to continuous scale

Y 軸変数が数値変数ではなく文字であるため、エラーが発生します。

これはclass( ) 関数を使用して確認できます。

 #check class of y variable
class(df$y)

[1] “character”

エラーを修正する方法

このエラーを修正する最も簡単な方法は、散布図を作成する前に Y 軸変数を数値変数に変換することです。

 library (ggplot2) 

#convert y variable to numeric
df$y <- as. numeric (df$y)

#create scatterplot with custom y-axis scale
ggplot(df, aes (x, y)) +
  geom_point() +
  scale_y_continuous(limits = c(0, 10))

文字変数ではなく数値変数を使用してscale_y_continuous()を使用したため、エラーが発生していないことに注意してください。

scale_y_continuous() 関数の完全なオンライン ドキュメントは、ここで見つけることができます。

追加リソース

次のチュートリアルでは、ggplot2 で他の一般的なプロット関数を実行する方法を説明します。

ggplot2で軸ブレークを設定する方法
ggplot2で軸ラベルを削除する方法
ggplot2 で軸ラベルを回転する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です