2013-10-28 180 views
-6

我有两个变量'y'和'剂量',并尝试确定这两个变量的最大值。但是,当我使用max(c(y,dose))时,它似乎只能识别一个变量。同样,当我使用min()时,它会识别另一个变量。有没有人有一个想法,为什么?max()函数给出错误的输出

谢谢。

> y 
[1] "4.3" "4.1" "4.1" "4.1" "4.1" "4.3" "3.8" "4.5" "4" "3.9" "4.3" "3.9" 
[13] "4.2" "3.9" "4.3" "3.9" "4" "4" "4.1" "3.5" "3.8" "4" "4.1" "3.9" 
[25] "3.9" "4" "4.1" "4.3" "3.7" "4.4" 
> dose 
[1] "16.03" "16.03" "22.9" 

> max(y) 
[1] "4.5" 
> max(dose) 
[1] "22.9" 
> max(c(y,dose)) 
[1] "4.5" 
+2

什么平台/编程语言,这是numeric类型? –

+0

可能想提及您正在使用的语言 – alrikai

+3

'max(“character”)''max(“numeric”)' – zero323

回答

1

因为您正在比较字符串。

考虑...

max("apple","banana","banana2") 
#[1] "banana2" 

max("1" , "2" , "10") 
#[1] "2" 

sort(c("1" , "2" , "10")) 
#[1] "1" "10" "2" 

sort(as.integer(c("1" , "2" , "10"))) 
#[1] 1 2 10 

max(as.integer(c("1" , "2" , "10"))) 
#[1] 10 

所以您的变量转换为使用例如y <- as.numeric(y)

+0

非常感谢。我用class()来检查我的变量,它们是字符。我以为我是前期转换的,但显然我没有。感谢所有的评论。 – user2929728

+0

@ user2929728考虑接受答案,以便我们知道问题得到解答。如果您想接受它,请按我的答案旁边的小绿勾号(您不必)。很高兴我能帮上忙。 –