Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除R中两个向量的最大值_R - Fatal编程技术网

删除R中两个向量的最大值

删除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

我有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, 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。。