查找R中具有最高值的向量

查找R中具有最高值的向量,r,R,我有一系列向量: aaa<-11 bbb<-23 ccc<-24 ddd<-26 eee<-89 fff<-89 ggg<-100 假设您有一个变量名列表: n <- c("aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg") 如果将变量按名称存储在列表l,则可以跳过定义n,只需执行vals,假设您有一个变量名称列表: n <- c("aaa", "bbb", "ccc", "ddd", "eee

我有一系列向量:

aaa<-11
bbb<-23
ccc<-24
ddd<-26
eee<-89
fff<-89
ggg<-100

假设您有一个变量名列表:

n <- c("aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg")

如果将变量按名称存储在列表
l
,则可以跳过定义
n
,只需执行
vals,假设您有一个变量名称列表:

n <- c("aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg")

如果将变量按名称存储在列表
l
,则可以跳过定义
n
,只需执行
vals,也可以执行此操作

a = mget(c("aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg"))
b = do.call(data.frame, a)
out = b[b %in% unique(t(b[order(b, decreasing =T)]))[1:2]]

#> out
#  eee fff ggg
#1  89  89 100

或者你也可以这样做

a = mget(c("aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg"))
b = do.call(data.frame, a)
out = b[b %in% unique(t(b[order(b, decreasing =T)]))[1:2]]

#> out
#  eee fff ggg
#1  89  89 100

是的,第一点是最重要的。不同的变量应该放在
VAL
中,永远不要取出:
rm(list=n)
谢谢大家!!弗兰克,你所说的“永不收回”是什么意思?他的意思是,如果你将所有这些变量一起分析(正如你的问题所表明的那样),它们应该一起存储,而不是分开存储。这使您可以轻松地进行排序和子集设置,并且仍然可以访问各个值(使用,例如,
vals[“aaa”]
)。是的,第一点是最重要的。不同的变量应该放在
VAL
中,永远不要取出:
rm(list=n)
谢谢大家!!弗兰克,你所说的“永不收回”是什么意思?他的意思是,如果你将所有这些变量一起分析(正如你的问题所表明的那样),它们应该一起存储,而不是分开存储。这使您可以轻松地进行排序和子集设置,并且仍然可以访问各个值(例如使用
vals[“aaa”]
)。
vals[vals >= second.largest]
# eee fff ggg 
#  89  89 100 
a = mget(c("aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg"))
b = do.call(data.frame, a)
out = b[b %in% unique(t(b[order(b, decreasing =T)]))[1:2]]

#> out
#  eee fff ggg
#1  89  89 100