R 挑战性的矢量修改

R 挑战性的矢量修改,r,r-raster,R,R Raster,我有一个看似简单的问题,但我想不出简单的解决方法。我需要找到一种方法来变换一个数值向量,使其增加。一个例子会更清楚 vec1 <- c(3,3,2,3,1) 同样地 vec2 <- c(1,3,1,2,7) 及 一开始我是这么想的 as.numeric(as.factor(vec1)) 本来可以工作,但现在不工作了(新版本?) 对于那些想知道我为什么需要它的人来说,这与我在这里介绍的光栅包中的一个bug有关: 但是没有得到回答。然后我必须找到一个解决办法 我希望这是清楚的,

我有一个看似简单的问题,但我想不出简单的解决方法。我需要找到一种方法来变换一个数值向量,使其增加。一个例子会更清楚

vec1 <- c(3,3,2,3,1)
同样地

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

一开始我是这么想的

as.numeric(as.factor(vec1))
本来可以工作,但现在不工作了(新版本?)

对于那些想知道我为什么需要它的人来说,这与我在这里介绍的光栅包中的一个bug有关:

但是没有得到回答。然后我必须找到一个解决办法

我希望这是清楚的,
谢谢

我们可以创建一个与
匹配的函数

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

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

f1正是我想要的答案!很 完美!非常感谢您的快速回答!
vec3 <- c(2,1,0,0,4)
 # [1] 1 2 3 3 4
as.numeric(as.factor(vec1))
f1 <- function(x){
     match(x, unique(x))
}

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