[r] 벡터의 모든 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 번째 요소를 선택하려면 어떤 벡터의 시작 위치
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