10
이 컬렉션의 인덱스 값을 통해 반복 할 때 다음 코드는 일반적으로 SO에 볼 수
for (i in 1:length(x)) {
# ...
}
컬렉션이 비어있을 때 1:length(x)
가 i
을 제공 1:0
되기 때문에 코드는 무례한 행동 값 1
및 0
.
iterate <- function(x) {
for (i in 1:length(x)) {
cat('x[[', i, ']] is', x[[i]], '\n')
}
}
> iterate(c(1,2,3))
x[[ 1 ]] is 1
x[[ 2 ]] is 2
x[[ 3 ]] is 3
> iterate(c())
x[[ 1 ]] is
x[[ 0 ]] is
나는 x
가 비어하지만 난 그것을 기억할 수없는 경우에 요소가없는 시퀀스를 정의하기위한 우아한 관용구를보고 기억합니다. 어떤 관용구를 사용합니까?
'seq_along'은 제가 본 관용구였습니다. – Sim
그러나 인덱스 변수가 필요없고 무언가의 요소를 반복하려는 경우 lapply/sapply/vapply 또는 plyr 패키지의 요소 중 하나가 더 우아 할 수 있습니다. – Spacedman
@Spacedman 매우 사실이며 확실히 OP가 염두에 두어야 할 사항입니다. – Dason