組給定一個排序向量x
:R:遞歸函數給連續數
x <- c(1,2,4,6,7,10,11,12,15)
我試圖寫一個小功能,將爲了產生一個類似大小的矢量y
給予最後的連續整數連續編號。在我的情況下,它是(定義組2,4,7,12和15):
> y
[1] 2 2 4 7 7 12 12 12 15
我嘗試這樣做這個遞歸想法(分別爲x是矢量,且i的索引,將在大多數由1開始例:如果下一個索引的內容比目前我較大的一個,然後調用該函數以i + 1;否則返回的內容):
fun <- function(x,i){
ifelse(x[i]+1 == x[i+1],
fun(x,i+1),
return(x[i]))
}
但是:
> sapply(x,fun,1)
[1] NA NA NA NA NA NA NA NA NA
如何讓這個工作。
不是一個騙局,但非常密切相關:http://stackoverflow.com/q/8466807/903061 – Gregor