我在数字字符串中有以下数据帧,日期为23/09/15。
Date Session
230915 2
230915 2
230915 2
230915 2
230915 2
230915 2
我想改变"日期"专栏,以便它" 23/09/15"。我想这样做的最简单方法是插入" /"在第2和第4个字符之后。
我试过这样做:
sub( '(?<=.{2})', '/', df$Date, perl=TRUE )
但得到了错误:
数据错误$ Date:$运算符对原子向量无效
还尝试使用以下方式编辑日期格式:
df$Date <- as.Date(data1$Date, format="%d/%m/%Y")
专栏回来了NA。为什么呢?
答案 0 :(得分:2)
一种方法是使用dmy
lubridate
v1 <- dmy(df1$Date)
v1
#[1] "2015-09-23" "2015-09-23" "2015-09-23" "2015-09-23" "2015-09-23" "2015-09-23"
最好将其存储为Date
格式。但是,如果所需的格式不同
format(v1, "%d/%m/%y")
#[1] "23/09/15" "23/09/15" "23/09/15" "23/09/15" "23/09/15" "23/09/15"
答案 1 :(得分:1)
你可以做到
df <- read.table(header=T, text="Date Session
230915 2 ")
gsub( '(..)\\B', '\\1/', df$Date )
# [1] "23/09/15"
或
(x <- as.Date(as.character(df$Date), format="%d%m%y"))
# [1] "2015-09-23"
format(x, "%d/%m/%y")
# [1] "23/09/15"
但是,如果df
是向量,则没有$
子集化选项:
df <- df$Date
gsub( '(..)\\B', '\\1/', df$Date )
# Error in df$Date : $ operator is invalid for atomic vectors