R で日付を数値に変換する方法 (例付き)
R で日付値を数値に変換するために使用できる方法は 2 つあります。
方法 1: as.numeric() を使用する
as. numeric (my_date)
これにより、日付オブジェクトと 1970 年 1 月 1 日の間に経過した秒数が返されます。
方法 2: lubridate パッケージ関数を使用する
library (lubridate) #get seconds value in date object second(my_date) #get minutes value in date object minute(my_date) ... #get year value in date object year(my_date)
これにより、秒、分、年などの値が返されます。日付オブジェクトの。
次の例は、各メソッドを実際に使用する方法を示しています。
方法 1: as.numeric() を使用する
次のコードは、 as.numeric()関数を使用して日付オブジェクトを数値に変換する方法を示しています。
#create date object
my_date <- as. POSIXct ("10/14/2021 5:35:00 PM", format="%m/%d/%Y %H:%M:%S %p")
#view date object
my_date
[1] "2021-10-14 05:35:00 UTC"
#convert date object to number of seconds since 1/1/1970
as. numeric (my_date)
[1] 1634189700
#convert date object to number of days since 1/1/1970
as. numeric (my_date) / 86400
[1] 18914.23
#convert date object to number of years since 1/1/1970
as. numeric (my_date) / 86400 / 365
[1] 51.81982
結果に基づいて、次のことがわかります。
- 日付オブジェクトと 1970 年 1 月 1 日の間には1,634,189,700 秒の差があります。
- 日付オブジェクトと 1/1/1970 の間には18,914.23 日の差があります。
- 日付オブジェクトと 1/1/1970 の間には51.81982 年の差があります。
方法 2: lubridate パッケージ関数を使用する
次のコードは、R のlubridateパッケージの関数を使用して日付オブジェクトを数値に変換する方法を示しています。
library (lubridate)
#create date object
my_date <- as. POSIXct ("10/14/2021 5:35:00 PM", format="%m/%d/%Y %H:%M:%S %p")
#view date object
my_date
[1] "2021-10-14 05:35:00 UTC"
#extract various numerical values from date object
second(my_date)
[1] 0
minute(my_date)
[1] 35
hour(my_date)
[1] 5
day(my_date)
[1] 14
month(my_date)
[1] 10
year(my_date)
[1] 2021
これらの関数を使用すると、日付オブジェクトから秒、分、時間、日、月、年の値を抽出できます。
Lubridate パッケージで最も一般的に使用される関数を完全に理解するには、このオンライン チート シートを参照してください。
追加リソース
次のチュートリアルでは、R で他の一般的な変換を実行する方法について説明します。