R
[R] List Iterator
'김용환'
2015. 8. 6. 21:46
R의 List의 값을 Iteration하고 싶을 때, 사용할 수 있는 코드이다.
첫번째 예제이다. 단순히 for each를 이용하는 예제이다.
mylist <- list(x <- 1:10)
mylist
for (x in mylist) {
print(x)
}
결과는 다음과 같다.
> mylist
[[1]]
[1] 1 2 3 4 5 6 7 8 9 10
> for (x in mylist) {
+ print(x)
+ }
[1] 1 2 3 4 5 6 7 8 9 10
두번째 예제는 iterators 라이브러리를 로딩한 경우이다. nextElem이 마지막 원소의 다음을 가르키게 되면 에러가 발생하는데, 이를 try문으로 예외를 잡게 하고 try-error인 class인 경우에는 loop를 빠지게 하는 코드이다.
(try 문이 의외로 중요한 상황에서 쓰일 수 있은 잘 기억한다!!)
library(iterators)
it <- iter(mylist)
while (TRUE) {
d = try(nextElem(it))
if (class(d) == "try-error") break
print(d)
}
결과는 다음과 같다.
> library(iterators)
>
> it <- iter(mylist)
> while (TRUE) {
+ d = try(nextElem(it))
+ if (class(d) == "try-error") break
+ print(d)
+ }
[1] 1 2 3 4 5 6 7 8 9 10
Error : StopIteration