[i,j]
(y1
と呼ぶ)と値i:j
のベクトル(y2
と呼ぶ)の一連のセンチネル値があるとします。たとえば:このR関数を組み込み関数で再表現しますか?
y1 <- c(649, 652, 656, 658, 660, 661, 669, 671)
y2 <- 649:671
それとも
y1 <- c(719, 725, 726, 728, 729, 731, 734, 740)
y2 <- 718:740
ありませんが、この機能を考えてみます。
Cody5 <- function(y1, y2){
y3 <- rep(NA, length(y2))
j <- 1
i <- 0
while(j < length(y1)){
i <- i + 1
if(y2[i]<y1[j]){
y3[i]<-y1[j]
} else {
y3[i]<-y1[j<-j+1]
}
}
if(i < length(y3)){
for(l in i:length(y3)){
y3[l] <- y1[j]
}
}
y3
}
私はcut()
を使用してCody5
を交換しようとしているが、私はそれが正しいように見えることはできません。
編集:
私はそれを書いておく必要があります。番兵(y1
)と元のベクトルのエントリがにソートされています。
この機能が何をするのか説明してください。あなたはRcppでこれを実装することができます(これは簡単です)。 – Roland
@Roland:はい、それは[Rccp it]が今やっていることです(しかし、コミュニティが組み込み関数を使ってこれを表現する方法を知っているなら、私はむしろそれを使用したい) – user189035
'y1 [findInterval (y2、y1、rightmost.closed = TRUE)+1] '? – jogo