Cum să acess poziția curentă a funcțiilor se aplică în interiorul domeniului de aplicare al funcției numit?

voturi
2

Cum de a face ceva de genul:

library(zoo)
s = sample(1:10,10)
s
# [1]  3  9  1 10  2  8  6  7  4  5
rollapply(s, width=1, function(x) ifelse(x==3|x==4, return(Current_Position), return(NA)) ) 

Ieșirea Aș dori să obțină este:

# [1]  1  NA  NA NA  NA  NA  NA  NA  9  NA

și anume cum să obțineți că Current_Positionvaloarea în interiorul funcției fiind numită de către rollapply?

Întrebat 05/11/2015 la 06:17
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
0

În astfel de cazuri se aplică de-a lungul indexului, mai degrabă decât vectorul în sine:

library(zoo)
s <- c(3, 9, 1, 10, 2, 8, 6, 7, 4, 5)
rollapply(seq_along(s), 1, function(ix) if (s[ix] %in% 3:4) ix else NA)
## [1]  1 NA NA NA NA NA NA NA  9 NA
Publicat 05/11/2015 la 12:22
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more