用另一个向量的条件替换一个向量的多个值

乌丁

我有向量Xvalindex如下

Xval <- c(-10, 5, 25, 10, 5, 21, 48, 4, 57, 14, 10, 15)
index <- c(1, 2, 2, 1, 3, 1, 3, 3, 1, 2, 1, 1)

我想替换索引值条件 Xval_mean

Xval_mean <- tapply(Xval, index, mean)
# 1        2        3 
# 17.16667 14.66667 19.00000

替换的索引值通过1为其Xval_mean最大,通过2对其Xval_mean是最小值,并且通过3的中间值Xval_mean我可以分别为 max 和 min 做

index[index == which.max(Xval_mean)] <- 1
index[index == which.min(Xval_mean)] <- 2

对于 的中间值Xval_mean,索引应该是3我需要一起做。任何帮助表示赞赏

罗纳克·沙阿

你可以试试 :

val <- names(c(which.max(Xval_mean), which.min(Xval_mean)))
val <- c(val, setdiff(names(Xval_mean), val))
index <- match(index, val)
index
#[1] 3 2 2 3 1 3 1 1 3 2 3 3

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章