阅读 CSV 后希望将列名格式化为日期

Looking to format column names to dates after reading in a CSV

当我从 CSV 文件中读取数据时,列名 return 格式如下:

X2017.04, X2017.05, X2017.06

我希望将其格式化为(或类似的格式):

April-2017, May-2017, June-2017

目前,我已经尝试使用循环遍历整个数据集并使用 as.Date()as.yearmon 重新格式化所有内容,其中一些已经奏效,kinda.

as.yearmon returned 1997.333333333 和类似的花车。 as.Date 我试过的代码 return 编辑了空白值。

我的 R 水平相对 new/novice,需要一些帮助。

谢谢!

使用 as.yearmon 你可以试试 :

names(df) <- zoo::as.yearmon(names(df), 'X%Y.%m')

或者在 base R 中粘贴任意日期:

names(df) <- format(as.Date(paste0(names(df), '.01'), 'X%Y.%m.%d'), '%b-%Y')

举个例子:

x <- c('X2017.04', 'X2017.05', 'X2017.06')
format(as.Date(paste0(x, '.01'), 'X%Y.%m.%d'), '%b-%Y')
#[1] "Apr-2017" "May-2017" "Jun-2017"

我们可以使用

library(lubridate)
format(ymd(sub('^X', "", x,), truncated = 2), '%b-%Y')
#[1] "Apr-2017" "May-2017" "Jun-2017"

数据

x <- c('X2017.04', 'X2017.05', 'X2017.06')