簡體   English   中英

在R中更改日期格式

[英]Changing the Date format in R

我有一個日期列的數據,其格式為:月/日/年(從1961年1月1日到2010年12月31日),這里只寫了一部分。

1/1/1961    0.0 
1/2/1961    4.5 
1/3/1961    1.7  
1/4/1961    0.0

但我希望日期格式為:day.month.year

01.01.1961  0.0
02.01.1961  4.5 
03.01.1961  1.7 
04.01.1961  0.0

我嘗試了此方法,但結果不理想:

    data$date <- format(as.Date(data$date), "%d.%m.%Y")
> df <- data.frame(date=c("1/1/1961", "1/2/1961", "1/3/1961 " ,"1/4/1961" ), 
+                                         mid=c(0.0,4.5,1.7,0.0))
> df
       date mid
1  1/1/1961 0.0
2  1/2/1961 4.5
3 1/3/1961  1.7
4  1/4/1961 0.0
> df$newdate <- strptime(as.character(df$date), "%d/%m/%Y")
> df$txtdate <- format(df$newdate, "%m.%d.%Y")
> df
       date mid    newdate    txtdate
1  1/1/1961 0.0 1961-01-01 01.01.1961
2  1/2/1961 4.5 1961-02-01 02.01.1961
3 1/3/1961  1.7 1961-03-01 03.01.1961
4  1/4/1961 0.0 1961-04-01 04.01.1961 

或使用:

> df <- data.frame(date=c("1/1/1961", "1/2/1961", "1/3/1961 " ,"1/4/1961" ), 
+                                                         mid=c(0.0,4.5,1.7,0.0))
> format(as.Date(df$date, format = "%d/%m/%Y"), "%d.%m.%Y")
[1] "01.01.1961" "01.02.1961" "01.03.1961" "01.04.1961"
> format(as.Date(df$date, format = "%d/%m/%Y"), "%m.%d.%Y")
[1] "01.01.1961" "02.01.1961" "03.01.1961" "04.01.1961"

檢查as.Dateformat參數。 [I]t will try "%Y-%m-%d" then "%Y/%m/%d ”。由於您的日期格式不同( %m/%d/%Y ),因此您需要指定輸入格式以使as.Date正確識別不同的時間分量。

date <- as.Date("1/1/1961", format = "%m/%d/%Y")
format(date, "%d.%m.%Y")
# [1] "01.01.1961"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM