在 R 中將因子轉換為日期
Gottumukkala Sravan Kumar
2023年1月30日
我們將介紹使用基本 R 庫中可用的 as.Date() 函式將 factor
轉換為日期的方法。factor
是一種資料結構,用於對資料進行分類並將分類後的資料儲存在多個級別。級別由整數表示。使用這些資料結構的一個優點是它不允許重複的值/特徵。我們可以使用以下語法使用 factor
函式建立日期:
factor(c("string_date",.....................))
#where string_date is the date in the given format "yyyy-mm-dd"
使用 R 中的 as.Date()
函式將因子轉換為日期
此函式用於將給定的 factor
資料轉換為給定格式的日期,格式應為 %Y-%m-%d
。這裡 Y 代表年份以四位數格式顯示年份,m
代表月份以獲取月份編號,而 d
代表日期以顯示日期編號。
在這裡,我們將建立一個帶有 5 個日期的因子
,並使用上述函式將其轉換為日期。
示例程式碼:
# R
#create factor date with string dates
data = factor(c("2021-11-20","2021-11-19","2021-11-18","2021-11-17","2021-11-16"))
#display
print(data)
#convert string date factor to date using as.Date() function
#in four digit year format
#month and day
final= as.Date(data, format = "%Y-%m-%d")
#display
print(final)
輸出:
[1] 2021-11-20 2021-11-19 2021-11-18 2021-11-17 2021-11-16
Levels: 2021-11-16 2021-11-17 2021-11-18 2021-11-19 2021-11-20
[1] "2021-11-20" "2021-11-19" "2021-11-18" "2021-11-17" "2021-11-16"
使用 R 中的 ymd()
函式將因子轉換為日期
ymd()
函式在 lubridate
庫中可用,它將給定的 factor
日期轉換為 %Y-%m-%d
格式的 Date 或 POSIXct 物件。
在使用此功能之前,我們必須安裝 lubridate 包。這個包將處理和管理日期變數。
讓我們看看如何安裝和載入包。
要載入包,我們必須使用 install
關鍵字,而要載入已安裝的包,我們必須使用 library
關鍵字。
#Install the package
install("lubridate")
#Load the package
load("lubridate")
示例程式碼:
#load lubridate library
library("lubridate")
#create factor date with string dates
data = factor(c("2021-11-20","2021-11-19","2021-11-18","2021-11-17","2021-11-16"))
#display
print(data)
#convert string date factor to date using ymd() function
#in four digit year format
#month and day
final= ymd(data, format = "%Y-%m-%d")
#display
print(final)
輸出:
[1] 2021-11-20 2021-11-19 2021-11-18 2021-11-17 2021-11-16
Levels: 2021-11-16 2021-11-17 2021-11-18 2021-11-19 2021-11-20
[1] "2021-11-20" "2021-11-19" "2021-11-18" "2021-11-17" "2021-11-16"
Gottumukkala Sravan Kumar is currently working as Salesforce Developer. During UG (B.tech-Hon's), he published 1400+ Technical Articles. He knows Python, R, Java, C#, PHP, MySQL and Bigdata Frameworks. In free time he loves playing indoor games.
LinkedIn