在R中查找矩阵中的最大值

3

我有一个矩阵数据。如何在给定的矩阵中找到最大值。

 > data
         [,1]  
   [1,] "1714.12"  
   [2,] Character,2

 > data[2,1]
   [1] "14777.15" "1421.45"
 > class(data)
   [1] "matrix"

如何在上面的矩阵 data 中找到最大值,即14777.15?

数据:

data <- structure(list("1714.12", c("14777.15", "1421.45")), .Dim = c(2L, 1L))

2
您的矩阵中没有数值数据,只有字符。 - user3710546
1
请展示给我们 dput(data) - Rich Scriven
你应该能够使用 max(as.numeric(c(data))) - Rich Scriven
dput(data) structure(list("1714.12", c("14777.15", "1421.45")), .Dim = c(2L, 1L)) @RichardScriven - Shivpe_R
@RichardScriven >max(as.numeric(c(data))) 错误:(list)对象无法强制转换为类型“double” - Shivpe_R
1个回答

6
data <- structure(list("1714.12", c("14777.15", "1421.45")), .Dim = c(2L, 1L))

在一个“标准”的R矩阵中,c(data)会以原子向量形式返回整个矩阵。但是如果我们查看这里的c(data),我们会发现它实际上是一个列表。
c(data)
# [[1]]
# [1] "1714.12"
#
# [[2]]
# [1] "14777.15" "1421.45" 

你可以在使用unlist()后使用max()。但是由于你的值是字符型,所以需要使用as.numeric()
max(as.numeric(unlist(data)))
# [1] 14777.15

注意:最好回溯一下,找到数字被转换为字符的位置,并相应地进行调整,以便您不会遇到其他问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接