The World’s Largest Online Community for Developers

';
r - Extract every nth element of a vector - LavOzs.Com
r vector

I would like to create a vector in which each element is the `i+6th`

element of another vector.

For example, in a vector of length 120 I want to create another vector of length 20 in which each element is value `i, i+6, i+12, i+18...`

of the initial vector, i.e. I want to extract every 6th element of the original.

```
a <- 1:120
b <- a[seq(1, length(a), 6)]
```

Another trick for getting sequential pieces (beyond the seq solution already mentioned) is to use a short logical vector and use vector recycling:

```
foo[ c( rep(FALSE, 5), TRUE ) ]
```

I think you are asking two things which are not necessarily the same

I want to extract every 6th element of the original

You can do this by indexing a sequence:

```
foo <- 1:120
foo[1:20*6]
```

I would like to create a vector in which each element is the i+6th element of another vector.

An easy way to do this is to supplement a logical factor with FALSEs until `i+6`

:

```
foo <- 1:120
i <- 1
foo[1:(i+6)==(i+6)]
[1] 7 14 21 28 35 42 49 56 63 70 77 84 91 98 105 112 119
i <- 10
foo[1:(i+6)==(i+6)]
[1] 16 32 48 64 80 96 112
```

To select every nth element from ** any** starting position in the vector

```
nth_element <- function(vector, starting_position, n) {
vector[seq(starting_position, length(vector), n)]
}
# E.g.
vec <- 1:12
nth_element(vec, 1, 3)
# [1] 1 4 7 10
nth_element(vec, 2, 3)
# [1] 2 5 8 11
```

Related

Test if a vector contains a given element

How do I make a matrix from a list of vectors in R?

Grouping functions (tapply, by, aggregate) and the *apply family

Create an empty data.frame

Subtract every element of vector A from every element of vector B

Adding value after every nth element of vector in R

Apply a function to every nth element in vector

Test if a vector contains a given element

How do I make a matrix from a list of vectors in R?

Grouping functions (tapply, by, aggregate) and the *apply family

Create an empty data.frame

Subtract every element of vector A from every element of vector B

Adding value after every nth element of vector in R

Apply a function to every nth element in vector