1

では、オブジェクトRのリストがあり、リストxts内のすべてのアイテムの時間インデックスの範囲を計算したいと考えています。私はそれを行うスムーズな方法を見つけることができません.オブジェクトのクラスを失い続け、生の数値ベクトルになります.

例(私のリストは と呼ばstatesれ、 GMT によってインデックス化されていますPOSIXct):

> c(min(sapply(states, start)), max(sapply(states, end)))
[1] 1252714110 1315785360

> range(sapply(states, function(x) range(index(x))))
[1] 1252714110 1315785360

それらを に戻すのは面倒POSIXctです。私は次のようにしています:

minmax <- range(sapply(states, function(x) range(index(x))))
epoch <-   as.POSIXct(0, origin="1970-01-01", tz="GMT")
rg <- as.POSIXct(minmax, origin="1970-01-01", tz="GMT")

アドバイスよろしくお願いします!

4

1 に答える 1

1

lapply各リスト要素のインデックス範囲を見つけるために使用します。次にdo.call、リストの範囲を見つけるために使用します。

do.call(range, lapply(states, function(x) range(index(x))))

または、機能的なパラダイムを好む場合:

Reduce(range, Map(function(x) range(index(x)), states))

sapply簡略化プロセスは、出力を、次のいずれかの単一の型を持つアトミック ベクトルまたは行列に変換するため、機能しません: NULL < raw < logical < integer < real < complex < character < list < expression、この優先順位で

于 2011-09-26T16:46:57.260 に答える