8

これは冗長かもしれませんが、SOで同様の質問が見つかりませんでした。

計算でベクトルの長さを使用せずに、ベクトルまたは配列の最後のn要素/エントリを取得するショートカットはありますか?

foo <- 1:23

> foo
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

最後の 7 つのエンティティが必要な場合、この面倒な構文を避けたいとします。

> foo[(length(foo)-6):length(foo)]
[1] 17 18 19 20 21 22 23

Python にはfoo[-7:]. Rに似たようなものはありますか?ありがとう!

4

2 に答える 2

15

あなたはtail機能が欲しい

foo <- 1:23
tail(foo, 5)
#[1] 19 20 21 22 23
tail(foo, 7)
#[1] 17 18 19 20 21 22 23
x <- 1:3
# If you ask for more than is currently in the vector it just
# returns the vector itself.
tail(x, 5)
#[1] 1 2 3

それに加えて、ベクトルの最後/最初の n 要素以外headのすべてを取得する簡単な方法もあります。

x <- 1:10
# Grab everything except the first element
tail(x, -1)
#[1]  2  3  4  5  6  7  8  9 10
# Grab everything except the last element
head(x, -1)
#[1] 1 2 3 4 5 6 7 8 9
于 2013-02-15T19:08:07.977 に答える
2

すばらしいテール機能がある場合はお勧めできませんが、代替手段は次のとおりです。

n <- 3
rev(rev(foo)[1:n])

私は反対票の準備をしています。

于 2013-02-15T19:25:16.320 に答える