R pmax功能输出的返回属性
我有以下数值向量R pmax功能输出的返回属性,r,R,我有以下数值向量x和y x <- c(a=1,b=2,c=3) y <- c(d=2,e=1,f=4) 输出值正确,但返回的名称错误。pmax的文档提到它返回第一个参数的属性,因此返回abc。有没有办法得到最大值的名称?所需输出如下: d b f 2 2 4 一个选项是使用max.col查找每行最大值的索引。为此,我们需要通过cbinding向量('xy')及其名称('nmxy')来创建一个矩阵/data.frame。创建行/列索引(“ij”)并将“xy”的元素子集,并从“nmx
x
和y
x <- c(a=1,b=2,c=3)
y <- c(d=2,e=1,f=4)
输出值正确,但返回的名称错误。pmax
的文档提到它返回第一个参数的属性,因此返回abc
。有没有办法得到最大值的名称?所需输出如下:
d b f
2 2 4
一个选项是使用
max.col
查找每行最大值的索引。为此,我们需要通过cbind
ing向量('xy')及其名称('nmxy')来创建一个矩阵/data.frame。创建行/列索引(“ij”)并将“xy”的元素子集,并从“nmxy”设置名称
xy <- cbind(x,y)
nmxy <- cbind(names(x), names(y))
ij <- cbind(1:nrow(xy), max.col(xy))
setNames(xy[ij], nmxy[ij])
# d b f
# 2 2 4
xyLet
xy <- cbind(x,y)
nmxy <- cbind(names(x), names(y))
ij <- cbind(1:nrow(xy), max.col(xy))
setNames(xy[ij], nmxy[ij])
# d b f
# 2 2 4
r <- pmax(x,y)
names(r)[y == r] <- names(y)[y == r]
old.pmax = pmax
pmax <- function(x,y){
r <- old.pmax(x,y)
names(r)[y == r] <- names(y)[y == r]
return(r)
}