我有两列多行的矩阵。第一列名称为idCombinaison
,第二列名称为accuarcy
。 accuarcy
具有浮点值。
现在,我想获取所有accuarcy == max value
值的行。在某些情况下(如图所示),我可以有很多行,accuarcy
的值等于max,所以我想获得所有这些行!
我尝试过:
maxAccuracy <- subset(accuarcyMatrix, accuarcyMatrix['accuarcy'] == max(accuarcyMatrix['accuarcy']))
答案 0 :(得分:1)
模拟您的矩阵的可复制数据:
set.seed(123)
x <- matrix(sample(1:9, 30, T), 10, 3)
row.names(x) <- 1:10
colnames(x) <- LETTERS[1:3]
# A B C
# 1 3 9 9
# 2 8 5 7
# 3 4 7 6
# ...
在矩阵对象中,您需要使用一种二进制方法来提取诸如data[a, b]
之类的元素。以上面的数据为例,x["C"]
将返回NA
,而x[, "C"]
将返回C列中的所有元素。因此,以下两个代码将生成不同的输出。
subset(x, x["C"] == max(x["C"]))
# A B C (Empty)
subset(x, x[, "C"] == max(x[, "C"]))
# A B C
# 1 3 9 9
# 4 8 6 9
答案 1 :(得分:0)
也许是这样吗?
library(dplyr)
accuarcyMatrix %>%
filter_at(vars(accuarcy),
any_vars(.==max(.))
)
答案 2 :(得分:0)
Base R解决方案(尽管很可能是重复的):
accuarcyMatrix[ which(accuarcyMatrix$accuarcy == max(accuarcyMatrix$accuarcy) , ]
我猜您会希望将“准确度”更改为“准确度”