3

xtsオブジェクトのリストがあります。リストの各レベルの最後の行を含むdata.frameを取得したいと思います。

私のリストは次のようになります:

a <- xts(matrix(1:4,2),as.Date("2012-01-01")+0:1)
b <-list(a,a*5)
> b
[[1]]
           [,1] [,2]
2012-01-01    1    3
2012-01-02    2    4

[[2]]
           [,1] [,2]
2012-01-01    5   15
2012-01-02   10   20

取得したい:

[,1] [,2]
2    4
10   20

列名は、リストの各レベルで同じです。

4

2 に答える 2

2

@Henrikの回答に加えて、、、、および:の組み合わせを使用することもできますlapplydo.calllast

do.call(rbind,lapply(b,last))
于 2012-05-14T14:22:50.137 に答える
1

bリストと同様に、次の*applyような家族のメンバーのいずれかを使用できます。

vapply(b, "[", i = 2, rep(0,2))

のオブジェクトbの行数が異なる場合は、次のように機能するはずです。

vapply(b, function(x) x[nrow(x),], rep(0,ncol(b[[1]])))

最初のバージョンでは、オブジェクトにさらに列がある場合は2inを適応させる必要があることに注意してください。または、2番目の例の構造を使用します。rep(0,2)

t必要な形式を取得するには、結果を使用する必要があることに注意してください。

t(vapply(b, "[", i = 2, rep(0,2)))
于 2012-05-14T12:47:00.260 に答える