删除R中两个向量的最大值
我有4个向量删除R中两个向量的最大值,r,R,我有4个向量v1、a1、v2、a2。我想写一个代码,它可以同时用于v1和a1或v2和a2删除向量v1的最大值,也可以根据v1的最大值的长度删除a1的元素,此代码也适用于v2,它删除了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
v1、a1、v2、a2
。我想写一个代码,它可以同时用于v1和a1
或v2和a2
删除向量v1
的最大值,也可以根据v1
的最大值的长度删除a1
的元素,此代码也适用于v2
,它删除了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)),]
我还应该补充一点,可以在不使用语法稍有不同的的情况下执行此操作:
cbind(v1,a1)[!v1==max(v1),]
cbind(v2,a2)[!v2==max(v2),]
你能说明你期望得到什么结果吗?你所说的“v1
的最大值的长度”是什么意思?意思是长度(mav(v1))=3。max
返回一个数字,所以它的向量长度
应该是1。。