R 如何从具有完整日期格式的字符串设置年份?

R 如何从具有完整日期格式的字符串设置年份?,r,csv,date,shiny,lubridate,R,Csv,Date,Shiny,Lubridate,这听起来可能是最基本的问题,但我宁愿继续下去 -这是闪亮应用程序的一部分- 我读了一个CSV文件,其中一列停止显示为General,因为我习惯于看到它们,但是Date类型,我只关心完整日期的年份。它并不总是以同样的方式,这意味着有时是1995年10月24日(月/日/年),有时是1995年10月24日(日/月/年)。我使用了lubridate包来处理下面的简单行 df$File.Date <- mdy(df$File.Date) df$year <- lubridate::year(

这听起来可能是最基本的问题,但我宁愿继续下去

-这是闪亮应用程序的一部分-

我读了一个CSV文件,其中一列停止显示为
General
,因为我习惯于看到它们,但是
Date
类型,我只关心完整日期的年份。它并不总是以同样的方式,这意味着有时是1995年10月24日(月/日/年),有时是1995年10月24日(日/月/年)。我使用了
lubridate
包来处理下面的简单行

df$File.Date <- mdy(df$File.Date)
df$year  <- lubridate::year(df$File.Date)

有时我可以在Excel中使用文本到列,并在使用应用程序之前这样做,这样我就不必更改
df$File.Date
,但它开始做一些奇怪的事情,当我将其更改为
General
时,它会将
10/31/2014
更改为
41943
,而我什么也得不到,有人能给我带路吗?

基于你只关心年份的观点,我这里有一个可复制的例子和解决方案:

x1 <-format(seq(today()-10,today()-5,by='day'),'%m/%d/%Y')
x2 <- format(seq(today()-4,today(),by='day'), '%d/%m/%Y')
df <- data.frame(x=c(x1,x2))

df %>% separate(x,c('d1','d2','year')) %>% head()

   dm md year
1  01 16 2021
2  01 17 2021
3  01 18 2021
4  01 19 2021
x1
x1 <-format(seq(today()-10,today()-5,by='day'),'%m/%d/%Y')
x2 <- format(seq(today()-4,today(),by='day'), '%d/%m/%Y')
df <- data.frame(x=c(x1,x2))

df %>% separate(x,c('d1','d2','year')) %>% head()

   dm md year
1  01 16 2021
2  01 17 2021
3  01 18 2021
4  01 19 2021