2013-10-28 144 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考慮接受答案,以便我們知道問題得到解答。如果您想接受它,請按我的答案旁邊的小綠勾號(您不必)。很高興我能幫上忙。 –