我有以下载体
a <- 0.01
b <- 0.1
c <- 0.0001
x <- c(a,b,c)
Which.min provides the location
min provides the minumum value
想要提取对应于最小值的对象名称(a,b或c)。
答案 0 :(得分:3)
x <- c(a=0.01, b=0.1, c=0.0001)
names(x)[which.min(x)]
答案 1 :(得分:1)
使用cbind
代替c
。不适用于大样本...
x <- cbind(a, b, c)
colnames(x)[which.min(x)]
# [1] "c"
这非常低效,但它确实可以帮助您定义名称。此外,如果您的向量具有多个值,则无效。
答案 2 :(得分:1)
好吧,我认为Barnaby希望为环境中的对象执行此操作:
a <- 0.01
b <- 0.1
c <- 0.0001
names(which.min(sapply(ls(), get, envir=globalenv())))
# [1] "c"
请注意,这会占用环境中的每个对象,因此如果您不想要清除环境,或使用pattern
参数ls
。
但实际上,如果你采用这种技巧,你可能会错误地进行分析。通常应将对象保持在一起(例如在列表中)。
答案 3 :(得分:0)
您可以使用变量名创建矢量:
x <- c("a", "b", "c")
names(which.min(mget(x)))
# [1] "c"