R での修正方法: as.date.numeric(x) のエラー: 'origin' を指定する必要があります


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

 Error in as.Date.numeric(x) : 'origin' must be supplied 

このエラーは通常、R で数値を日付に変換しようとしたが、元の日付を提供できない場合に発生します。

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

エラーを再現する方法

R に、企業による数日間の総売上高を示す次のデータ フレームがあるとします。

 #create data frame
df <- data. frame (date=c(27, 140, 180, 200),
                 sales=c(12, 22, 30, 31))

#view data frame
df

  dirty dates
1 27 12
2 140 22
3 180 30
4,200 31

str()関数を使用して、データ フレームの構造を表示できます。

 #view structure of data frame
str(df)

'data.frame': 4 obs. of 2 variables:
 $ date: num 27 140 180 200
 $ sales: num 12 22 30 31

日付列売上高列が両方とも数値であることがわかります。

ここで、日付列を日付形式に変換しようとするとします。

 #attempt to convert date column to date format
df$date <- as. Date (df$date)

Error in as.Date.numeric(df$date) : 'origin' must be supplied

as.Date()関数でorigin引数を使用しなかったため、エラーが発生します。

エラーを修正する方法

このエラーを修正する方法は、単純に元の日付を指定して、R が数値を日付に変換する方法を認識できるようにすることです。

 #convert date column to date format, using 2020-01-01 as origin date
df$date <- as. Date (df$date, origin=" 2020-01-01 ")

#view updated data frame
df

        dirty dates
1 2020-01-28 12
2 2020-05-20 22
3 2020-06-29 30
4 2020-07-19 31

起点の日付を指定すると、R は、指定された起点に日数を加算して数値を日付に変換しました。

例えば:

  • 最初の日付値27 は、元の日付 2020-01-01 に 27 日を加算することにより、 2020-01-28に変換されました。
  • 2 番目の日付値140 は、元の日付 01/01/2020 に 140 日を加算することで、 2020 年 5 月20 日に変換されました。

等々。

class()関数を使用して、新しい列が実際に日付であることを確認することもできます。

 #display class of date column
class(df$date)

[1] “Date”

新しい列は数値ではなく日付になりました。

追加リソース

次のチュートリアルでは、R の他の一般的なエラーを解決する方法について説明します。

R での修正方法: 名前が以前の名前と一致しない
R での修正方法: 長いオブジェクトの長さが短いオブジェクトの長さの倍数ではありません
R での修正方法: コントラストは 2 レベル以上の因子にのみ適用できます。

コメントを追加する

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