我想给dat
向量中的所有值赋予我在另一个向量(new_value
)中定义的相应值。我已经设法以某种方式做了,但我喜欢没有循环的解决方案:
dat <- c("a","c","b","a","a","c","a","b","b","a")
old_value <- names(table(dat))
new_value <- 1:length(old_value)
new_dat <- rep(NA, length(dat))
for(z in 1:length(old_value)){
new_dat[dat==old_value[z]] <- c(1:length(new_value))[z]
}
new_dat
我不想使用其他库。请仅基于解决方案。
答案 0 :(得分:3)
我们可以使用match
new_dat <- new_value[match(dat, old_value)]
对于当前的例子,甚至
match(dat, old_value)
应该有效