从R中的时间戳中删除日期部分
Removing date part from timestamp in R
我有这样的数据:
timestamp volume
1 2013-10-29T00:00:00-05:00 650
2 2013-10-29T00:15:00-05:00 778
3 2013-10-29T00:30:00-05:00 683
4 2013-10-29T00:45:00-05:00 723
我该如何删除日期(这部分 2013-10-29T
)以便我的专栏看起来像这样:
我很难使用 lubridate
。谢谢!
timestamp volume
1 00:00:00-05:00 650
2 00:15:00-05:00 778
3 00:30:00-05:00 683
4 00:45:00-05:00 723
我们可以使用 sub
ro 通过匹配字符直到 T
即 .*T
删除包括 T
的日期部分,并将其替换为空白 (""
)
df1$timestamp <- sub(".*T", "", df1$timestamp)
df1$timestamp
#[1] "00:00:00-05:00" "00:15:00-05:00" "00:30:00-05:00" "00:45:00-05:00"
只需使用 anytime()
R> library(anytime)
R> pt <- anytime(c("2013-10-29T00:00:00-05:00", "2013-10-29T00:15:00-05:00",
+ "2013-10-29T00:30:00-05:00", "2013-10-29T00:45:00-05:00"))
R> pt
[1] "2013-10-29 00:00:00 CDT" "2013-10-29 00:15:00 CDT"
[3] "2013-10-29 00:30:00 CDT" "2013-10-29 00:45:00 CDT"
R> format(pt, "%H:%M:%S")
[1] "00:00:00" "00:15:00" "00:30:00" "00:45:00"
R>
如果你想添加偏移量,你可以在格式字符串中这样做:
R> format(pt, "%H:%M:%S-05:00")
[1] "00:00:00-05:00" "00:15:00-05:00" "00:30:00-05:00" "00:45:00-05:00"
R>
总的来说,我强烈建议不要通过正则表达式处理日期和时间。显式类型的强类型基本上总是更好。它们存在是有原因的。
我有这样的数据:
timestamp volume
1 2013-10-29T00:00:00-05:00 650
2 2013-10-29T00:15:00-05:00 778
3 2013-10-29T00:30:00-05:00 683
4 2013-10-29T00:45:00-05:00 723
我该如何删除日期(这部分 2013-10-29T
)以便我的专栏看起来像这样:
我很难使用 lubridate
。谢谢!
timestamp volume
1 00:00:00-05:00 650
2 00:15:00-05:00 778
3 00:30:00-05:00 683
4 00:45:00-05:00 723
我们可以使用 sub
ro 通过匹配字符直到 T
即 .*T
删除包括 T
的日期部分,并将其替换为空白 (""
)
df1$timestamp <- sub(".*T", "", df1$timestamp)
df1$timestamp
#[1] "00:00:00-05:00" "00:15:00-05:00" "00:30:00-05:00" "00:45:00-05:00"
只需使用 anytime()
R> library(anytime)
R> pt <- anytime(c("2013-10-29T00:00:00-05:00", "2013-10-29T00:15:00-05:00",
+ "2013-10-29T00:30:00-05:00", "2013-10-29T00:45:00-05:00"))
R> pt
[1] "2013-10-29 00:00:00 CDT" "2013-10-29 00:15:00 CDT"
[3] "2013-10-29 00:30:00 CDT" "2013-10-29 00:45:00 CDT"
R> format(pt, "%H:%M:%S")
[1] "00:00:00" "00:15:00" "00:30:00" "00:45:00"
R>
如果你想添加偏移量,你可以在格式字符串中这样做:
R> format(pt, "%H:%M:%S-05:00")
[1] "00:00:00-05:00" "00:15:00-05:00" "00:30:00-05:00" "00:45:00-05:00"
R>
总的来说,我强烈建议不要通过正则表达式处理日期和时间。显式类型的强类型基本上总是更好。它们存在是有原因的。