열거 형 목록과 같은 열거 형으로 Python 스타일 목록 이해를 사용하려면 한 가지 방법은 List-comprehension 패키지 LC
(2018 년 개발) 및 itertools 패키지 (2015 년 개발)를 설치하는 것입니다.
R의 이해력 나열
여기 에서 LC
패키지 를 찾을 수 있습니다 .
install.packages("devtools")
devtools::install_github("mailund/lc")
예
> library(itertools); library(lc)
> lc(paste(x$index, x$value), x=as.list(enumerate(rnorm(5))), )
[[1]]
[1] "1 -0.715651978438808"
[[2]]
[1] "2 -1.35430822605807"
[[3]]
[1] "3 -0.162872340884235"
[[4]]
[1] "4 1.42909760816254"
[[5]]
[1] "5 -0.880755983937781"
프로그래밍 구문이 아직 Python만큼 깨끗하고 다듬어지지는 않았지만 기능적으로 작동하고 도움말이 다음과 같이 설명되어 있습니다.
"구문은 다음과 같습니다. lc (expr, lists, predicates) 여기서 expr은 목록의 모든 요소에 대해 평가할 표현식입니다. 여기서 목록은 하나 이상의 명명 된 목록이며, 이름과 표현식 이름으로 지정됩니다. = list_expr, 여기서 술어는 부울 값으로 평가되어야하는 표현식입니다. 예를 들어, 목록 x에서 제곱 된 모든 짝수 목록을 얻으려면 lc (x ** 2, x = x, x % % 2 == 0). lc에 대한 호출의 결과는 술어가 참으로 평가되는 입력 목록의 모든 요소에 대해 expr의 표현식으로 구성된 목록입니다. "
위의 예에서와 같이 술어를 비워 둘 수 있습니다.
Python 스타일 itertools 및 열거 형
당신은 크랑에 추가, 파이썬의 itertools과 매우 유사 R의 itertools를 사용할 수 있습니다 여기에
library(itertools)
설명 된 곳
"반복자를 만들기위한 다양한 도구, Python itertools 모듈의 함수 이후 패턴 화 된 많은 도구, 'snow'패키지의 함수 이후 패턴 화 된 다른 도구."
예. 열거
> for (a in as.list(enumerate(rnorm(5)))) { print(paste(a$index, "index:", a$value))}
[1] "1 index: 1.63314811372568"
[1] "2 index: -0.983865948988314"
[1] "3 index: -1.27096072277818"
[1] "4 index: 0.313193212706331"
[1] "5 index: 1.25226639725357"
예. ZIP으로 열거
> for (h in as.list(izip(a=1:5, b=letters[1:5]))) { print(paste(h$a, "index:", h$b))}
[1] "1 index: a"
[1] "2 index: b"
[1] "3 index: c"
[1] "4 index: d"
[1] "5 index: e"
expand.grid(i=10:20,j=10:20)