2016-08-20 1 views
1

내가 배열 내가 한 각 스칼라에 "어떤"기능을 적용 할 것배열 및 스칼라에 apply를 사용하려면 어떻게해야합니까?

a = c(1,2,3,1,2,3,1,2,3,1,2,3) 

있는 경우 : lapply하는 적용으로 나는이 작업 벡터화 어떻게

l = list() 
for(i in 1:3){ 
l[[i]] = which(a == i) 
} 

3

을, 지도?

+1

당신이 찾고 계십니까 더 일반적인 무엇인가 또는이 구체적인 예를 단순화하기 위해? 더 많은 컨텍스트를 제공하거나'split (seq_along (a), a)'를 각각 시도 할 수 있습니다. –

답변

2

lapply의 주된 인수는 끝내고 싶은 목록 요소의 차원이어야합니다. 어느입니다 당신이 그렇게 당신의 for 예에 이상 반복됩니다 당신이 사용할 수있는

a = c(1,2,3,1,2,3,1,2,3,1,2,3) 
lapply(1:3, function(x) which(a == x)) 

다른 방법으로, 익명 함수에 a를 코딩하지 않으려면 :

lapply(1:3, function(x, y) which(y == x), y = a) 
+1

두 번째 것은 내가 찾고있는 것이고, "a"요소에 "적용하지"않는 방법을 알고 있습니다. 요소별로. 나는 추가적인 주장을 생각하지 않았다. 고맙습니다 – Sojers

관련 문제