В вашем случае, да, просто вычтите. В целом, match
может быть весьма полезным в подобных случаях. Например, предположим, что вы хотите перекодировать значения в этом столбце x
в значения в столбце y
> d <- data.frame(x=c(1,3,4,5 ,6),y=c(3,4,2.2,1,4.6))
> print(d, row.names=FALSE)
x y
1 3.0
3 4.0
4 2.2
5 1.0
6 4.6
Тогда это перекодирует значения в a
в новые значения.
> a <- c(3,4,6,1,5)
> d$y[match(a,d$x)]
[1] 4.0 2.2 4.6 3.0 1.0