답변:
a <- 1:120
b <- a[seq(1, length(a), 6)]
seq.int
은 마이크로 벤치 마크에서 빠르지 만 실제 프로그램의 성능 향상은 다른 부품의 실행 시간으로 인해 줄어 듭니다 .
a = 1:120; b = [::6]
. 파이썬은 전자를 할 수 없으며 R은 후자를 할 수 없습니다.
(이미 언급 한 seq 솔루션 이외의) 순차적 조각을 얻는 또 다른 요령은 짧은 논리 형 벡터를 사용하고 벡터 재활용을 사용하는 것입니다.
foo[ c( rep(FALSE, 5), TRUE ) ]
seq
하려면 length
벡터 를 호출 할 수 있어야합니다 . letters[letters < 'm'][c(TRUE, FALSE, FALSE)]
꼭 같은 것이 아닌 두 가지를 요구한다고 생각합니다
원본의 모든 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
foo[1:(i+6)!=(i+6)]
즉 여섯 번째를 제외한 모든 값을 출력합니다.