我有一些文件的格式为data_25_05_2018.csv
,这些文件有4列,每列30个值。
我想为每个列添加一个具有相同日期的列,因此,想法是告诉R取文件名,将其拆分,然后仅取25_05_18
部分,然后将将其转换为有效的日期格式并创建一列。
是否存在一种形式,可以将文件名的一部分转换为R中的数据?
我有一些文件的格式为data_25_05_2018.csv
,这些文件有4列,每列30个值。
我想为每个列添加一个具有相同日期的列,因此,想法是告诉R取文件名,将其拆分,然后仅取25_05_18
部分,然后将将其转换为有效的日期格式并创建一列。
是否存在一种形式,可以将文件名的一部分转换为R中的数据?
您可以使用正则表达式和dmy()
中的lubridate
函数来做到这一点:
library(lubridate)
library(tibble)
## make some fake data
DF <- matrix(rnorm(120),ncol=4)
colnames(DF) <- c("V1","V2","V3","V4")
## turn data into a tibble
DF <- as_tibble(DF)
## make file name
x <- "data_25_05_2018.csv"
## extract everything between data_ and .csv
x <- gsub("data_(.*)\\.csv","\\1",x)
## use dmy to turnit into a date and add to data frame
DF$date <- dmy(x)
> head(DF)
# # A tibble: 6 x 5
# V1 V2 V3 V4 date
# <dbl> <dbl> <dbl> <dbl> <date>
# 1 0.692 -1.51 1.74 -0.585 2018-05-25
# 2 1.08 -0.812 -1.55 -1.98 2018-05-25
# 3 0.000229 2.55 -0.577 -0.619 2018-05-25
# 4 0.940 -0.906 0.990 -1.48 2018-05-25
# 5 -1.78 0.815 0.436 -0.125 2018-05-25
# 6 -0.324 0.735 0.974 0.151 2018-05-25