我有一列作为值读入的日期character(是的,它们应该是相同的):
str(df$date)
$ date : chr "30/08/2017" "30/08/2017" "30/08/2017" "30/08/2017"
Run Code Online (Sandbox Code Playgroud)
然后我将这些值转换为Date格式:
str(df$date)
$ date : Date, format: "2017-08-30" "2017-08-30" "2017-08-30"
Run Code Online (Sandbox Code Playgroud)
问题是,无论我选择使用哪种方法,结果日期始终是YYYY/MM/DD格式的,这不是我想要的;它们应该是DD/MM/YYYY格式化的。
我尝试:
df$date <- as.Date(df$date, format = "%d/%m/%Y")
df$date <- strptime(df$date, format = "%d/%m/%Y")
df$date <- as.POSIXct(df$date, format = "%d/%m/%Y")
Run Code Online (Sandbox Code Playgroud)
它们都产生相同的格式。
我读过许多类似的 Stack Overflow 帖子以及一些指南,并尝试过获取和设置我的系统区域设置(英国)之类的事情,在这方面一切都是正确的。
我哪里错了?
我尝试:
Run Code Online (Sandbox Code Playgroud)df$date <- as.Date(df$date, format = "%d/%m/%Y") df$date <- strptime(df$date, format = "%d/%m/%Y") df$date <- as.POSIXct(df$date, format = "%d/%m/%Y")它们都产生相同的格式。
R 有两个命名非常相似的函数:strptime,将字符串转换为日期数据;以及strftime,将日期转换为格式化字符串。更糟糕的是,这两个函数的文档是合并在一起的,因此很难保持它们的用途。strftime在这种情况下,你想要。