I need to remove the last number in a groups of vectors, i.e.:
v <- 1:3
v1 <- 4:8
should become:
v <- 1:2
v1 <-
You can use negative offsets in head (or tail), so head(x, -1) removes the last element:
R> head( 1:4, -1)
[1] 1 2 3
R>
This also saves an additional call to length().
Edit: As pointed out by Jason, this approach is actually not faster. Can't argue with empirics. On my machine:
R> x <- rnorm(1000)
R> microbenchmark( y <- head(x, -1), y <- x[-length(x)], times=10000)
Unit: microseconds
expr min lq median uq max
1 y <- head(x, -1) 29.412 31.0385 31.713 32.578 872.168
2 y <- x[-length(x)] 14.703 15.1150 15.565 15.955 706.880
R>