6
我有一個xts對象,x。我想根據索引中的時間戳運行for循環直到某個時間。從xts索引獲取時間
> index(x)
[1] "2011-10-12 16:44:00 SAST"
可以說,只要索引中的時間少於16:40:00,我就想運行我的循環。考慮到上面的索引格式,我如何去除時間分量?
我有一個xts對象,x。我想根據索引中的時間戳運行for循環直到某個時間。從xts索引獲取時間
> index(x)
[1] "2011-10-12 16:44:00 SAST"
可以說,只要索引中的時間少於16:40:00,我就想運行我的循環。考慮到上面的索引格式,我如何去除時間分量?
這應該讓你在你想成爲的球場。使用format
,您只需提取小時,分鐘和秒部分。 ?strptime
的幫助頁面提供了關於用於提取信息的符號的更多細節。
#if you don't have your string in an appropriate format yet
(x <- strptime("2011-10-12 16:44:00 SAST", format = "%Y-%m-%d %H:%M:%S"))
[1] "2011-10-12 16:44:00"
class(x)
[1] "POSIXlt" "POSIXt"
(new.x <- format(x, format = "%H:%M:%S"))
[1] "16:44:00"
問題是時區正確。在我的系統中tz
規範「SAST」是無效的,但也許你上這將是:
x[ index(x) < as.POSIXct("2011-10-12 16:44:00", tz= SAST") ]
(看來是UTC +2),我收回我說一下我的系統無法識別它。
as.POSIXct("2011-10-12 16:44:00", tz= "Africa/Johannesburg")
# [1] "2011-10-12 16:44:00 SAST"
所以使用:
x[ index(x) <= as.POSIXct("2011-10-12 16:44:00", tz= "Africa/Johannesburg")]
感謝,工作的魅力。但是有一個問題,爲了比較這個時間分量到任意時間,比如說16:00:00,我會怎麼做呢?我試過了:if(new.x> strptime(「16:00:00」,「%H:%M:%S」),但它似乎沒有選擇它,因爲new.x是一個歷史價值和新的時間有今天的日期 –
@ED我想可以創建一個新的變量與附加日期,或具有您的當前變量與日期以及。 –