行名称列和修改 R

问题描述

如何将名称修改为日期格式并将它们作为日期放在一列中?

names(df)     
      [6] "X1.23.20"       "X1.24.20"       "X1.25.20"       "X1.26.20"       "X1.27.20"      
     [11] "X1.28.20"       "X1.29.20"       "X1.30.20"       "X1.31.20"       "X02.01.2020"   
     [16] "X02.02.2020"    "X02.03.2020"    "X02.04.2020"    "X02.05.2020"    "X02.06.2020"   
     [21] "X02.07.2020"    "X02.08.2020"    "X02.09.2020"    "X02.10.2020"    "X02.11.2020"   
     [26] "X02.12.2020"    "X2.13.20"       "X2.14.20"       "X2.15.20"       "X2.16.20"      
     [31] "X2.17.20"       "X2.18.20"       "X2.19.20"       "X2.20.20"       "X2.21.20"      
     [36] "X2.22.20"       "X2.23.20"       "X2.24.20"       "X2.25.20"       "X2.26.20"      

解决方法

您可以使用具有指定格式的 as.Date,例如,

> as.Date(v,"X%m.%d.%y")
[1] "2020-01-23" "2020-01-24" "2020-02-02" "2020-02-03"

数据

v <- c("X1.23.20","X1.24.20","X02.02.2020","X02.03.2020") 
,

一个选项是使用 mdy 中的 lubridate

library(lubridate)
mdy(sub("^X","",names(df)))

使用可重现的示例

v1 <- c("X1.23.20","X02.04.2020"  )
mdy(sub("^X",v1))
#[1] "2020-01-23" "2020-02-04"