R 在数据帧中拆分日期和时间
我在数据框中有一列日期列表,日期格式为R 在数据帧中拆分日期和时间,r,date,dataframe,split,datetime-format,R,Date,Dataframe,Split,Datetime Format,我在数据框中有一列日期列表,日期格式为201001011200as%Y%m%d%H%m。我想将它们拆分为%Y%m%d和%H%m作为日期和时间 我试图as.Date(data$Date,origin=“1970-01-01”)但收到一条错误消息 charToDate(x)中出错:字符串不在标准格式中 明确的格式 日期的类别是数字。因此,我尝试将其转换为字符,并应用上述as.Date函数,但没有任何帮助 有什么想法吗?先谢谢你 编辑 以下是我的数据示例: Index Date ra
201001011200
as%Y%m%d%H%m
。我想将它们拆分为%Y%m%d
和%H%m
作为日期和时间
我试图as.Date(data$Date,origin=“1970-01-01”)
但收到一条错误消息
charToDate(x)中出错:字符串不在标准格式中
明确的格式
日期的类别是数字
。因此,我尝试将其转换为字符
,并应用上述as.Date
函数,但没有任何帮助
有什么想法吗?先谢谢你
编辑
以下是我的数据示例:
Index Date rank amount
81211 201004090000 11 4.9
81212 201004090100 11 4.6
81213 201004090200 11 3.3
81214 201004090300 11 2.7
81215 201004090400 11 3.1
81216 201004090500 11 3.7
81217 201004090600 11 4.0
81218 201004090700 11 4.2
81219 201004090800 11 4.2
81220 201004090900 11 4.0
更新答案:从示例数据开始,您可以
data$Date <- as.POSIXct(as.character(data$Date), format = "%Y%m%d%H%M")
原始答案:如果您是从一个数值开始的,请将其包装在
as.character()
中,然后通过as.POSIXct()
运行它以获得POSIX日期时间值
data$Date <- as.POSIXct(as.character(data$Date), format = "%Y%m%d%H%M")
然后,要分开日期和时间,您可以执行以下操作
list(as.Date(x), format(x, "%T"))
# [[1]]
# [1] "2010-01-01"
#
# [[2]]
# [1] "12:00:00"
分别给出日期和字符分类的项目。对于普通的旧字符向量,只需使用format()
两次
c(format(x, "%m-%d-%Y"), format(x, "%T"))
# [1] "01-01-2010" "12:00:00"
或
比我快。。OP说他们是从数字开始的,但他们已经知道如何使用
as.character()
,所以你的答案应该会让他们知道剩下的部分…@Richard Scriven上面的日期201001011200
只是date
列中的一个日期。日期通过增加小时来更改。所以,我有大约10万行。上面的解决方案不起作用。我还使用了数据$Date@RichardScriven您在评论部分的解决方案运行良好。从那以后,我使用以下方法将其拆分为日期和时间:data$Date@RichardScriven为什么data$Time
(x <- as.POSIXct(as.character(201001011200), format = "%Y%m%d%H%M"))
# [1] "2010-01-01 12:00:00 PST"
list(as.Date(x), format(x, "%T"))
# [[1]]
# [1] "2010-01-01"
#
# [[2]]
# [1] "12:00:00"
c(format(x, "%m-%d-%Y"), format(x, "%T"))
# [1] "01-01-2010" "12:00:00"
c(as.character(as.Date(x)), format(x, "%T"))
# [1] "2010-01-01" "12:00:00"