我有4个向量v1, a1, v2, a2
。我想编写代码可以使用两种v1 and a1
或v2 and a2
删除向量的最大值v1
,并且还除去的元素a1
根据最大值的长度v1
,也这个代码作品v2
其去除maximun值,并删除在根据值a2
。我如何在R中做到这一点?我希望代码可以适用于像这样的任何其他向量。
v1 = c(0.25, 0.25, 0.3, 0.3, 0.3, 5, 6, 6.5, 8, 8, 8)
a1 = rep(1, length(v1))
v2=unique(v1)
a2 = c(2, 3, 1, 1, 1, 3)
我的愿望结果如下:
> v1
[1] 0.25 0.25 0.30 0.30 0.30 5.00 6.00 6.50
> a1
[1] 1 1 1 1 1 1 1 1
> a2
[1] 2 3 1 1 1
> v2
[1] 0.25 0.30 5.00 6.00 6.50
您可以分别为每个向量执行此操作:
v1[-which(v1==max(v1))]
a1[-which(v1==max(v1))]
但是将它们绑定在一起可能更有意义,因此您不必重复执行以下命令:
cbind(v1,a1)[-which(v1==max(v1)),]
这一过程将是相同的v2
和a2
:
cbind(v2,a2)[-which(v2==max(v2)),]
我还应该补充一点,无需which
稍有不同的语法就可以做到这一点:
cbind(v1,a1)[!v1==max(v1),]
cbind(v2,a2)[!v2==max(v2),]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句