2014-03-03 4 views
1

다음 작업을위한 루프를 만드는 데 어려움이 있습니다.복잡한 루프를 만드는 방법

  1. 문제는 & y는
  2. (100)를 통해 정수 1은 X, X^Y, 얼마나 많은 독특한 능력이 있다는 것을 요청?
  3. 기본 루프에 대해 알게되었지만 어디서부터 시작해야할지 모르겠습니다.

조언을 구하는 것이 도움이됩니다.

+2

난 단지 생각이 질문의 제목을 읽기 : ** Do not! ** – ziggystar

답변

2

루프를 수행 할 필요가 없습니다.

length(unique(unlist(lapply(1L:100L, function(x) (1L:100L)^x)))) 

이 밖으로 속보 :

# apply the exponents 1:100 to all values 1:100 
vallist <- lapply(1L:100L, function(x) (1L:100L)^x) 
# form one vector and find all unique values from it: 
u <- unique(unlist(vallist)) 
# number of unique values: 
length(u) 
+0

'lapply'는 루프입니다. – Roland

+1

@Roland True이지만 컴파일 된 C 코드의 루프이므로 초보자 용 R 사용자에게는 분명하지 않습니다. – Thomas

+1

예, 숨겨진 루프입니다.하지만 성능이'for' 루프보다 좋지 않다는 점에 유의해야합니다. – Roland

3

사용 outer 대신 루프와 유사하게 작동 lapply를 사용

length(unique(as.vector(outer(1:100, 1:100, "^")))) 
#[1] 9308 
관련 문제