2016-11-15 60 views
2

我有什麼似乎是一個簡單的問題,但我無法找出一種方法來解決它簡單。我需要找到一種方法來轉換數值矢量,使其增加。一個例子會更清楚...具有挑戰性的矢量修改

vec1 <- c(3,3,2,3,1) 

後凋謝成一個功能

F(VEC 1)

應該成爲

# [1] 1 1 2 1 3 

用同樣的方法,

vec2 <- c(1,3,1,2,7) 

應該成爲

# [1] 1 2 1 3 4 

vec3 <- c(2,1,0,0,4) 

應該成爲

# [1] 1 2 3 3 4 

起初我一直儘管這

as.numeric(as.factor(vec1)) 

會工作,但它不工作了(新的版本?)

對於想知道爲什麼我需要的,它涉及到我這裏介紹的光柵包中的錯誤的人: http://r-sig-geo.2731867.n2.nabble.com/bug-in-raster-stackApply-when-raster-not-in-memory-td7590584.html

但沒有回答。然後我必須找到解決方法。

我希望這是明確的, 感謝

回答

4

我們可以創建一個函數match

f1 <- function(x){ 
    match(x, unique(x)) 
} 

f1(vec1) 
#[1] 1 1 2 1 3 
f1(vec2) 
#[1] 1 2 1 3 4 
+0

正是這樣回答的我一直在尋找!完善!非常感謝您的快速回答! – Bastien