[R] List Iterator

R 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




'R' 카테고리의 다른 글

[R] R에서 메모리 정리하기  (0) 2015.08.12
[R] stop() 함수와 에러 처리 방법  (0) 2015.08.11
[R] List Iterator  (0) 2015.08.06
R 의 함수 aliasing (별명)  (0) 2015.08.06
[R] rjson으로 data frame 으로 만들기  (0) 2015.08.05
[R] 리눅스 (Red-hat 계열) 모듈 설치  (0) 2015.08.05
Posted by 김용환 '김용환'

댓글을 달아 주세요