首先,我必須讓你的示例數據爲R(請使用dput
下一次)
lines <- '2013-01-01 00:01:00 2.2560000
2013-01-01 00:02:00 2.3883333
2013-01-01 00:03:00 1.8450000
2013-01-01 00:04:00 1.6966667
2013-01-01 00:04:03 1.3100000
2013-01-01 00:05:00 0.8533333'
tmp <- read.table(text=lines)
x <- xts(tmp[, 3], as.POSIXct(paste(tmp[, 1], tmp[, 2])))
可以使用.indexsec
函數提取行,其中第二個是(或不是)0
x[.indexsec(x) == 0]
# [,1]
#2013-01-01 00:01:00 2.2560000
#2013-01-01 00:02:00 2.3883333
#2013-01-01 00:03:00 1.8450000
#2013-01-01 00:04:00 1.6966667
#2013-01-01 00:05:00 0.8533333
x[.indexsec(x) != 0]
# [,1]
#2013-01-01 00:04:03 1.31
另一個想法是使用未導出xts:::startof
功能類似於endpoints
功能。
x[xts:::startof(x, "mins")]
# [,1]
#2013-01-01 00:01:00 2.2560000
#2013-01-01 00:02:00 2.3883333
#2013-01-01 00:03:00 1.8450000
#2013-01-01 00:04:00 1.6966667
#2013-01-01 00:05:00 0.8533333
或者,如果你只有一個沒有在00結束行,你可以使用負子集:
x[-xts:::startof(x, "mins")]
# [,1]
#2013-01-01 00:04:03 1.31
下面介紹如何用一個零個寬度XTS合併做具有所需索引的對象。
merge(xts(, seq(start(x), end(x), by="min")), x, all=FALSE)
# x
#2013-01-01 00:01:00 2.2560000
#2013-01-01 00:02:00 2.3883333
#2013-01-01 00:03:00 1.8450000
#2013-01-01 00:04:00 1.6966667
#2013-01-01 00:05:00 0.8533333
我沒有downvote,但可以理解爲什麼downvote發生。現在你的問題還不清楚。 'subset seconds'是什麼意思?你有多個問題,而不是一個好的框架**我如何... **問題。也許更好的方法是說這是我擁有的數據(舉例),這就是我希望數據看起來的方式(舉例)。至少收緊問題來表達你的想法。 –
現在你的問題表明你想提取不以00結尾的行,這與你之前的「定時制定時間序列」請求是矛盾的。你要哪個? – GSee
我想看看在沒有以00結尾的行上發生了什麼,但想要在晚些時候提取所有有00的行。 –