2011-03-15 2 views
1

다음과 같은 방법으로 벡터화 할 수 있습니까?루프에 대해 이것을 벡터화 : 하위 인덱스에 함수를 적용 하시겠습니까?

# x: some vector 
# index: some vector of indeces 
n <- length(index) 
y <- rep(NA, n) 
for (i in 1:n) { 
    y[i] = myfunction(x[1:index[i]) 
} 

기본적으로, 벡터 x의 다양한 하위 집합에 myfunction을 적용하고 싶습니다. 이 문제를 처리하기 위해 apply 함수가 빌드 된 것처럼 보이지 않습니다.

답변

2

나는 당신이 무엇을하고 있는지 이해하는 경우 잘 모르겠지만, 당신이 x 벡터에서 얻을하려는 경우 첫 번째 index는 일부 샘플 데이터를 백업하기보다, 요소 수를 -es :

x <- runif(10) 
index <- c(2,5,4,8) 

을 시도 :

> lapply(index, function(index) return(x[1:index])) 
[[1]] 
[1] 0.3869757 0.4060021 

[[2]] 
[1] 0.3869757 0.4060021 0.4843015 0.2064443 0.4614179 

[[3]] 
[1] 0.3869757 0.4060021 0.4843015 0.2064443 

[[4]] 
[1] 0.3869757 0.4060021 0.4843015 0.2064443 0.4614179 0.9278044 0.7351291 
[8] 0.9792204 
+0

고맙습니다. 그거야. 정확히 내가 무엇을 찾고 있었는지. – lowndrul

관련 문제