R 如何将包含日期(YYYYMMDD)的数字变量转换为POSIXct格式变量
我有一个数据框,其中一列是R 如何将包含日期(YYYYMMDD)的数字变量转换为POSIXct格式变量,r,R,我有一个数据框,其中一列是date,但它是一个数字。我想把它转换成POSIXct格式,但我不知道如何转换 我曾想过使用不同的函数(gsub,substr,等等),但据我所知,它们都不允许我在特定位置的数字之间添加“-” 我怎么做呢 例如,我有以下数据帧df1: df1<- data.frame(date=c(20160801,20160802,20160803), var1=c(4,56,76)) > df1 date var1 1
date
,但它是一个数字。我想把它转换成POSIXct格式,但我不知道如何转换
我曾想过使用不同的函数(gsub
,substr
,等等),但据我所知,它们都不允许我在特定位置的数字之间添加“-”
我怎么做呢
例如,我有以下数据帧df1
:
df1<- data.frame(date=c(20160801,20160802,20160803),
var1=c(4,56,76))
> df1
date var1
1 20160801 4
2 20160802 56
3 20160803 76
我该怎么做?使用
lubridate
可以很容易地做到这一点
库(tidyverse)
图书馆(lubridate)
df1%
变异(日期=ymd(日期))
使用基本R
df1-df1
日期变量1
1 20160801 4
2 20160802 56
3 20160803 76
将函数as.Date.character
与tryFormats
参数一起使用,该参数的定义方式与当前数据的定义方式相同。在这种情况下,%Y%m%d“
df1$日期df1
日期变量1
1 2016-08-01 4
2 2016-08-02 56
3 2016-08-03 76
不必添加-
或加载额外的包,只需指定一种不带空格的格式-为.Date(as.character(df1$Date),format=“%Y%m%d”)
如果您确实想要类POSIXct
:为.POSIXct(strtime(as.character(df1$Date),%Y%m%d))
。但是我怀疑类日期的对象也可以。@neilfws-为什么额外的strtime
?-只需直接运行-as.POSIXct(as.character(df1$date),format=“%Y%m%d”)
@thelatemail是的,也是:)我最初尝试时省略了“format=,这会产生一个错误。是的!!谢谢你的评论!!我想我的帖子是重复的。。。我没有找到你提到的帖子。。。我是否要删除我的帖子?
> df1
date var1
1 2016-08-01 4
2 2016-08-02 56
3 2016-08-03 76