이 공식의 구현을 최적화하고 싶습니다.
x
값의 배열입니다. i
1 N> N 2400000. 들어가는 i=0
, i-1
마지막 요소이고,는에 대한 i=lastElement
, i+1
첫 번째 요소이다. 내가 작성한 코드는 다음과 같습니다.
x <- 1:2400000
re <- array(data=NA, dim = NROW(x))
lastIndex = NROW(x)
for(i in 1:lastIndex){
if (i==1) {
re[i] = x[i]*x[i] - x[lastIndex]*x[i+1]
} else if(i==lastIndex) {
re[i] = x[i]*x[i] - x[i-1]*x[1]
} else {
re[i] = x[i]*x[i] - x[i-1]*x[i+1]
}
}
apply
R에서 할 수 있습니까 ?
이를 위해 직접 벡터화를 사용할 수 있습니다.
# Make fake data
x <- 1:10
n <- length(x)
# create vectors for the plus/minus indices
xminus1 <- c(x[n], x[-n])
xplus1 <- c(x[-1], x[1])
# Use direct vectorization to get re
re <- x^2 - xminus1*xplus1
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다