0
의 오류
이 함수를 실행하려고 시도하고 "2 진수 연산자가 아닌 숫자가 아닌 인수"가 나타납니다. 내 질문과 비슷한 질문을 보았지만 내 코드의 문제점을 파악할 수는 없습니다."이진 연산자의 숫자가 아닌 인수"R
TakeOneIndStep <- function(Itl, N){ # Itl is a vector
foo <- ListMaintenance(Itl, N) # is a vector of same length as Itl. Displays the coordinates of coalesced walks.
incrm <- sample(c(-1, 0, 1), size = length(Itl), replace = T, prob = c(0.25, 0.5, 0.25))
for (j in 1:length(Itl)){
if(Itl[j] %in% foo){
Itl[j] <- (Itl[j] + incrm[j]) %% N
}else{
Itl[j] <- "H" # H is a "placeholder", just to indicate that that particular chain has coalesced and no longer is updated.
}
}
return(Itl)
}
여섯 번째 줄에 오류가 발생합니다. Itl[j] <- (Itl[j] + incrm[j]) %% N
. 보조 기능
코드 : 큰 그림에
ListMaintenance <- function(Temp, N){ # Temp is a vector
rez <- CheckCoalescence(Temp)
fubar <- vector()
for(i in 1:length(rez)){
for(x in 0:(N-1)){if (x %in% rez[[i]]){fubar[x] <- min(rez[[i]])}
}
}
return(fubar) # output is a vector. Coordinates with the same value have the index of the smallest occurrence.
}
CheckCoalescence <- function(Pts){
mar <- unname(split(seq_along(Pts), Pts))
return(mar)
}
, 나는 두 개 이상의 서로 다른 출발점과 랜덤 워크 프로세스를 시뮬레이션하기 위해 노력하고있어. 따라서 인수 Itl
은 시간 (t-1)에 각 보행의 값이되며이 함수는 이러한 값을 재귀 적으로 업데이트합니다.
A <- c(0, 2, 3, 2, 6)
및
TakeOneIndStep(A, N = 9)
과 기능을 테스트하려고 A
는 임의의 벡터이다. 보행을 시뮬레이트하는 코드가 더 있지만 오류의 원인이되는 부분을 방금 제시했습니다.
이 함께
을 대체,이 문제를 해결하려면'ITL [J] <- "H"아이디어가 Itl''이다 경우'오히려 의심된다 숫자를 보유하기로되어 있습니다. R의 강제 규칙을 알고 있습니까? 벡터는 단일 데이터 형식 만 포함 할 수 있습니다. 다른 값을 왜곡시키지 않는 "자리 표시 자"를 찾으려면 'NA'를 시도해보십시오. – joran
''H ''값이 필요한 경우,''as.numeric (Itl [j]) + incrm [j]) 루프의 숫자로 강제 변환 할 수 있습니다. –
감사합니다. @bradford condon – KirkLand