假设我有一个向量,它嵌套在一个有一级或二级的数据框架中。是否有一种快速而肮脏的方法来访问最后一个值,而不使用length()函数?一些ala PERL的$#特殊的var?
所以我想要这样的东西:
dat$vec1$vec2[$#]
而不是:
dat$vec1$vec2[length(dat$vec1$vec2)]
假设我有一个向量,它嵌套在一个有一级或二级的数据框架中。是否有一种快速而肮脏的方法来访问最后一个值,而不使用length()函数?一些ala PERL的$#特殊的var?
所以我想要这样的东西:
dat$vec1$vec2[$#]
而不是:
dat$vec1$vec2[length(dat$vec1$vec2)]
当前回答
xts包提供了最后一个函数:
library(xts)
a <- 1:100
last(a)
[1] 100
其他回答
xts包提供了最后一个函数:
library(xts)
a <- 1:100
last(a)
[1] 100
如果您正在寻找像Python的x[-1]符号一样好的东西,我认为您运气不好。标准的习语是
x[length(x)]
但是写一个函数来实现这个很简单:
last <- function(x) { return( x[length(x)] ) }
R中这个缺失的特性也让我很恼火!
我使用tail函数:
tail(vector, n=1)
tail的好处是它也适用于数据框架,不像x[length(x)]习惯用法。
有什么关于
> a <- c(1:100,555)
> a[NROW(a)]
[1] 555
另一种方法是取反转向量的第一个元素:
rev(dat$vect1$vec2)[1]