将列识别为data.frame中的日期

将列识别为data.frame中的日期,r,R,我在data.frame中有一列字符,我希望将其识别为日期: 例如,我尝试: dat <- c("2013.05.30","2013.05.29","2013.05.28","2013.05.27") dat1 <- gsub(".", "-", dat) dat简单地强迫他们约会不是更容易吗 as.Date(dat,format = "%Y.%m.%d") 您的gsub不起作用的原因是在regex中有特殊的含义。您可以通过指定fixed=TRUE来逐字解释它,简单地强制它

我在data.frame中有一列字符,我希望将其识别为日期:

例如,我尝试:

 dat <- c("2013.05.30","2013.05.29","2013.05.28","2013.05.27")

 dat1 <- gsub(".", "-", dat)

dat简单地强迫他们约会不是更容易吗

as.Date(dat,format = "%Y.%m.%d")

您的
gsub
不起作用的原因是
在regex中有特殊的含义。您可以通过指定
fixed=TRUE

来逐字解释它,简单地强制它们指定日期不是更容易吗

as.Date(dat,format = "%Y.%m.%d")
您的
gsub
不起作用的原因是
在regex中有特殊的含义。您可以通过在gsub调用中指定
fixed=TRUE

来逐字解释它,“.”是您的模式。图案中的“.”符号表示“任何字符”,因此您正在计算gsub以将每个字符替换为破折号。正确的
gsub
调用需要转义句点,以便R知道这是一个文字句点:

d1 <- gsub("\\.", "-", dat)
您预期的解决方案只会将字符串转换为不同的字符串格式。使用as.Date告诉R将值视为日期而不是字符串

plot(d1)
将产生错误(因为当您要求R只打印字符串时,R不理解您想要的内容),而:

plot(d2)
生成索引与一周中某一天的关系图(因为R识别出您有timeseries数据)。

在gsub调用中,“.”是您的模式。图案中的“.”符号表示“任何字符”,因此您正在计算gsub以将每个字符替换为破折号。正确的
gsub
调用需要转义句点,以便R知道这是一个文字句点:

d1 <- gsub("\\.", "-", dat)
您预期的解决方案只会将字符串转换为不同的字符串格式。使用as.Date告诉R将值视为日期而不是字符串

plot(d1)
将产生错误(因为当您要求R只打印字符串时,R不理解您想要的内容),而:

plot(d2)

生成索引与星期几的对比图(因为R识别出您有timeseries数据)。

非常感谢您的帮助非常感谢您的帮助非常感谢您的帮助非常感谢您的帮助非常感谢您的帮助非常感谢您的帮助