IT

벡터의 모든 n 번째 요소 추출

lottoking 2020. 7. 22. 07:46
반응형

벡터의 모든 n 번째 요소 추출


각 요소가 i+6th다른 벡터 요소 인 벡터를 만들고 싶습니다 .

예를 들어 길이가 120 인 벡터에서는 각 요소가 i, i+6, i+12, i+18...초기 벡터의 값인 길이가 20 인 다른 벡터를 만들고 싶습니다 . 즉 원본의 6 번째 요소마다 추출하고 싶습니다.


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

(이미 언급 된 seq 솔루션 이외의) 조각을 얻는 또 다른 요령은 짧은 논리 벡터를 벡터 재활용을 사용하는 것입니다.

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

꼭 같은 것이 아닌 두 가지를 요구하는 생각합니다

원본의 모든 6 번째 요소를 추출하고 싶습니다.

시퀀스를 색인화하여이를 수행 할 수 있습니다.

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

각 요소가 다른 벡터의 i + 6 번째 요소 인 벡터를 만들고 싶습니다.

이를 수행하는 쉬운 방법은 다음과 같은 때까지 FALSE를 사용하여 위치 요소를 보완하는 것입니다 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

에서 모든 n 개의 요소를 선택-th하려면 어떤 벡터의 시작 위치

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

참고 URL : https://stackoverflow.com/questions/5237557/extract-every-nth-element-of-a-vector

반응형