我有这个初始矩阵:
> fil
2 3 6
1 1 1
> str(fil)
Named num [1:3] 1 1 1
- attr(*, "names")= chr [1:3] "2" "3" "6"
当我这样做时:
which(fil==min(fil,na.rm = TRUE))
我已经退回了
> which(fil==min(fil,na.rm = TRUE))
2 3 6
1 2 3
我想返回向量的名称:
2 3 6
帮助:)
答案 0 :(得分:1)
当您看到类似问题的输出时,您必须怀疑上面的向量是在其下面打印的向量的名称。下面是实际矢量,其值,而不是输出的第一行。
已通过str
str(fil)
# Named num [1:3] 1 1 1
# - attr(*, "names")= chr [1:3] "2" "3" "6"
它首先说Named num
,所以它是一个命名为数字的向量。
然后是attributes
行。有问题的属性是"names"
。并且有一些函数可以获取一些常见的属性,例如"names"
属性。
fil <- c('2' = 1, '3' = 1, '6' = 1)
fil
#2 3 6
#1 1 1
attributes(fil)
#$names
#[1] "2" "3" "6"
有两种获取属性"names"
的方法。第二个是我将使用的快捷方式:
attr(fil, "names")
#[1] "2" "3" "6"
names(fil)
#[1] "2" "3" "6"
现在,要回答这个问题,只需对与向量fil
的最小值相对应的名称进行子集化。
names(fil)[which(fil==min(fil,na.rm = TRUE))]
#[1] "2" "3" "6"